#2
林月儿2015-07-01 13:48
'SqList' has no member named 'r'代码东拼西凑的吧
程序代码: #include <stdlib.h> #include <stdio.h> #define MaxSize 1000 typedef struct record { int elem[MaxSize]; int length; //当前长度 }SqList; void output(SqList L) { int i; for(i=0;i<L.length;i++) { printf("%5d",L.elem[i]); } return; } void InsertSort(SqList &L) {int i,j; for( i=2; i<=L.length;i++) { if(L.r[i].key < L.r[i-1].key) { L.r[0] = L.r[i]; L.r[i] = L.r[i-1]; for( j=i-2; (L.r[0].key < L.r[j].key); j--) L.r[j+1] = L.r[j]; L.r[j+1] = L.r[0]; } } } void BubbleSort(SqList &L) {//冒泡排序 int i,j; for(i=0;i<L.length-2;i++) { int flag=1; for(j=0;j<L.length-i-2;j++) if(L.r[j].key>L.r[j+1].key) { flag = 0; int temp; temp=L.r[j].key; L.r[j].key=L.r[j+1].key; L.r[j+1].key=temp; } } } void QuickSort(SqList &L, int low, int high) {L.r[0]=L.r[low]; pivotkey=L.r[low].key; while(low<high) {while(low<high&&L.r[high].key>=pivotkey) --high; L.r[low]=L.r[high]; while(low<high&&L.r[low].key<=pivotkey) ++low; L.r[high]=L.r[low];} L.r[low]=L.r[0]; //return low; } main() {//循环对顺序表进行排序 int low,high,n; int i,flag,selem,sresult,ielem,locate; SqList L; // Init(L); printf("\n插入排序输入1,冒泡排序输入2,快速排序输入3,退出输入任意键:"); scanf("%d",&flag); while(flag==1||flag==2||flag==3) {printf("请输入排序记录的长度:"); scanf("%d",&L.length); printf("请输入%d个整数",L.length); for(i=0;i<=L.length;i++) scanf("%d",&L.elem[i-1]); {if(flag==1) InsertSort(L); if(flag==2) BubbleSort(L); if(flag==3) QuickSort(L,low,high); } output(L); printf("\n插入排序输入1,冒泡排序输入2,快速排序输入3,退出输入任意键:"); scanf("%d",&flag); } } |
程序代码:
#include <stdlib.h>
#include <stdio.h>
#define MaxSize 1000
typedef struct record
{
int elem[MaxSize];
int length; //当前长度
}SqList
void output(SqList &L)
{ int i;
for(i=0;i<L.length;i++)
{
printf("%5d",L.elem[i]);
}
return;)
}
void InsertSort(sqList &L)
{int i,j;
for( i=2; i<=L.length;i++)
{ if(L.r[i].key < L.r[i-1].key)
{ L.r[0] = L.r[i];
L.r[i] = L.r[i-1];
for( j=i-2; (L.r[0].key < L.r[j].key); j--)
L.r[j+1] = L.r[j];
L.r[j+1] = L.r[0]; }
}
}
void BubbleSort(SqList &L)
{//冒泡排序
int i,j;
for(i=0;i<L.length-2;i++)
{
int flag=1;
for(j=0;j<L.length-i-2;j++)
if(L.r[j].key>L.r[j+1].key)
{
flag = 0;
int temp;
temp=L.r[j].key;
L.r[j].key=L.r[j+1].key;
L.r[j+1].key=temp;
}
void QuickSort(sqList &L, int low, int high)
{L.r[0]=L.r[low];
pivotkey=L.r[low].key;
while(low<high)
{while(low<high&&L.r[high].key>=pivotkey) --high;
L.r[low]=L.r[high];
while(low<high&&L.r[low].key<=pivotkey) ++low;
L.r[high]=L.r[low];}
L.r[low]=L.r[0];
return low;
}
main()
{//循环对顺序表进行排序
int i,flag,selem,sresult,ielem,locate;
SqList L;
Init(L);
printf("\n插入排序输入1,冒泡排序输入2,快速排序输入3,退出输入任意键:");
scanf("%d",&flag);
while(flag==1||flag==2||flag==3)
{printf("请输入排序记录的长度:");
scanf("%d",&L.length);
printf("请输入%d个整数",&L.length);
for(i=0;i<=L.length;i++)
scanf("%d",&L.elem[i-1]);
{if(flag==1)
InsertSort(sqList &L);
if(flag==2)
BubbleSort(SqList &L,int n);
if(flag==3)
QuickSort(sqList &L, int low, int high);
}
output(SqList &L);
printf("\n插入排序输入1,冒泡排序输入2,快速排序输入3,退出输入任意键:");
scanf("%d",&flag);
}
}
}
#include <stdio.h>
#define MaxSize 1000
typedef struct record
{
int elem[MaxSize];
int length; //当前长度
}SqList
void output(SqList &L)
{ int i;
for(i=0;i<L.length;i++)
{
printf("%5d",L.elem[i]);
}
return;)
}
void InsertSort(sqList &L)
{int i,j;
for( i=2; i<=L.length;i++)
{ if(L.r[i].key < L.r[i-1].key)
{ L.r[0] = L.r[i];
L.r[i] = L.r[i-1];
for( j=i-2; (L.r[0].key < L.r[j].key); j--)
L.r[j+1] = L.r[j];
L.r[j+1] = L.r[0]; }
}
}
void BubbleSort(SqList &L)
{//冒泡排序
int i,j;
for(i=0;i<L.length-2;i++)
{
int flag=1;
for(j=0;j<L.length-i-2;j++)
if(L.r[j].key>L.r[j+1].key)
{
flag = 0;
int temp;
temp=L.r[j].key;
L.r[j].key=L.r[j+1].key;
L.r[j+1].key=temp;
}
void QuickSort(sqList &L, int low, int high)
{L.r[0]=L.r[low];
pivotkey=L.r[low].key;
while(low<high)
{while(low<high&&L.r[high].key>=pivotkey) --high;
L.r[low]=L.r[high];
while(low<high&&L.r[low].key<=pivotkey) ++low;
L.r[high]=L.r[low];}
L.r[low]=L.r[0];
return low;
}
main()
{//循环对顺序表进行排序
int i,flag,selem,sresult,ielem,locate;
SqList L;
Init(L);
printf("\n插入排序输入1,冒泡排序输入2,快速排序输入3,退出输入任意键:");
scanf("%d",&flag);
while(flag==1||flag==2||flag==3)
{printf("请输入排序记录的长度:");
scanf("%d",&L.length);
printf("请输入%d个整数",&L.length);
for(i=0;i<=L.length;i++)
scanf("%d",&L.elem[i-1]);
{if(flag==1)
InsertSort(sqList &L);
if(flag==2)
BubbleSort(SqList &L,int n);
if(flag==3)
QuickSort(sqList &L, int low, int high);
}
output(SqList &L);
printf("\n插入排序输入1,冒泡排序输入2,快速排序输入3,退出输入任意键:");
scanf("%d",&flag);
}
}
}