#include void main() { SeqList mylist1,mylist2,mylist3; ListInitiate(&mylist1); ListInitiate(&mylist2); ListInitiate(&mylist3); inti,x,w,t; t=true; while(t) { printf(\"\\n\\\1.输入表1中元素\\n\"); printf(\"\\\2.删除表1中元素\\n\"); printf(\"\\\3.输入表2中元素\\n\"); printf(\"\\\4.合并表1,表2中元素\\n\"); printf(\"\\\5.退出程序\\n\"); printf(\"\\\请输入选项:\"); scanf(\"%d\ switch(w) { case 1: { printf(\"请输入表1的元素:\\n\"); for(i=0;i<10;i++) { scanf(\"%d\ ListInsert(&mylist1,i,x); } QuickSort(&mylist1,0,9); printf(\"当前表1中元素为:\"); for(i=0;i printf(\"\\n\"); printf(\"元素个数为:%d\ printf(\"\\n\"); };break; case 2: { printf(\"请输入要删除的元素位置:\"); scanf(\"%d\ ListDelete(&mylist1,i,&x); printf(\"删除成功!\"); printf(\"\\n\"); printf(\"表1中元素为:\"); for(i=0;i } printf(\"\\n\"); };break; case 3: { printf(\"请输入表2的元素:\\n\"); for(i=0;i<10;i++) { scanf(\"%d\ ListInsert(&mylist2,i,x); } QuickSort(&mylist2,0,9); printf(\"\\n\"); printf(\"表2中元素为:\"); for(i=0;i printf(\"\\n\"); };break; case 4: { printf(\"表1中元素为:\"); for(i=0;i } printf(\"\\n\"); printf(\"表2中元素为:\"); for(i=0;i printf(\"\\n\"); ListMerge(&mylist1,&mylist2,&mylist3); QuickSort(&mylist3,0,ListLength(mylist3)-1); printf(\"表3中元素为:\\n\"); for(i=0;i printf(\"\\n\");break; } case 5:t=false;break; } } } 头文件 typedefstruct { DataTypelist[MaxSize]; int size; }SeqList; voidListInitiate(SeqList *L) voidQuickSort(SeqList *L,intlow,int high) { voidListMerge(SeqList *L1,SeqList *L2,SeqList *L3) 头文件实现 typedefstruct { DataTypelist[MaxSize]; int size; }SeqList; voidListInitiate(SeqList *L) { L->size=0; } intListLength(SeqList L) { returnL.size; } intListInsert(SeqList *L,inti,DataType x) { int j; if(L->size>=MaxSize) { printf(\"顺序表已满无法插入!\\n\"); return 0; } else if(i<0||i>L->size) { printf(\"参数i不合法!\\n\"); return 0; } else if(L->size==0) { L->list[0]=x; L->size++; return 1; } else { for(j=L->size;j>i;j--) L->list[j]=L->list[j-1]; L->list[i]=x; L->size++; return 1; } } intListDelete(SeqList *L,inti,DataType *x) { int j; if(L->size<=0) { printf(\"顺序表已空无数据可删!\\n\"); return 0; } else if(i<0||i>L->size-1) { printf(\"参数i不合法!\\n\"); return 0; } else { *x=L->list[i]; for(j=i+1;j<=L->size-1;j++) L->list[j-1]=L->list[j]; L->size--; return 1; } } intListGet(SeqList *L,inti,DataType *x) { if(i<0||i>L->size-1) { printf(\"参数i不合法!\\n\"); return 0; } else { *x=L->list[i]; return 1; } } voidQuickSort(SeqList *L,intlow,int high) { inti=low,j=high; DataType temp=L->list[low]; while(i while(i L->list[i]=temp; if(low} voidListMerge(SeqList *L1,SeqList *L2,SeqList *L3) { intx,i,j; for(i=0;i ListGet(L1,i,&x); ListInsert(L3,i,x); } for(j=0;j ListGet(L2,j,&x); ListInsert(L3,L1->size+j,x); } } 运行结果: 因篇幅问题不能全部显示,请点此查看更多更全内容