资源描述:
《数据结构与算法实验源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二#include#include#defineMaxlen100typedefstruct{intdata[Maxlen];intlast;}Sequenlist;Sequenlist*SqLsetnull(){//建立一个空的顺序表Sequenlist*L;L=(Sequenlist*)malloc(sizeof(Sequenlist));L->last=-1;returnL;}void*SqLset(Sequenlist*L){//对顺序表输入数据intn;p
2、rintf("请输入要输入的元素数量:");scanf("%d",&n);printf("请输入要输入的元素:");for(inti=0;idata[i]);}L->last=i;returnL;}intSqLdelete(Sequenlist*L,inti){//删除顺序表中的元素//因为只是调用该函数删除顺序表中多余的元素省略的一些数据判断intj;for(j=i;j<=L->last+1;j++)L->data[j]=L->data[j+1];L->las
3、t--;return1;}voidSqLdel(Sequenlist*L){//寻找顺序表中多余的元素并删除inti,j;if(L->last<0){printf("顺序表为空");}else{for(i=0;i<=L->last;i++){for(j=i+1;j<=L->last;j++)if(L->data[j]==L->data[i]){SqLdelete(L,j);//调用函数删除下标为j的结点}}}}voidSqLsc(Sequenlist*L){//输出顺序表中的数据inti;if(L-
4、>last<0)printf("顺序表为空");else{printf("顺序表中的元素:");for(i=0;ilast;i++){printf("%d",L->data[i]);}}printf("");}intmain(void){Sequenlist*L;L=SqLsetnull();intchoice;printf("1,输入数据2,删除重复多余的数据3,输出数据0,退出");do{printf("请输入选择:");scanf("%d",&choice);switch(ch
5、oice){case1:SqLset(L);printf("");break;case2:SqLdel(L);printf("");break;case3:SqLsc(L);printf("");break;default:printf("请输入正确的选择!");break;case0:break;}}while(choice!=0);return0;}实验三#include#include#defineSIZE15typedefstruct{intda
6、ta[SIZE];intlast;}RecordList;RecordList*shuru(){//向顺序表中输入数据ints,i=0;RecordList*L;L=(RecordList*)malloc(sizeof(RecordList));printf("请输入要输入到顺序表中数据的数量:");scanf("%d",&s);if(s>15){printf("超过最大的数据长度");}else{printf("请输入要输入的数据:");for(i=0;idat
7、a[i]);}printf("成功输入%d个数据",i);L->last=i-1;returnL;}voidpaixu(RecordList*L){//冒泡排序法对顺序表中的数据进行排序intx,change=1,i,j;for(i=0;ilast&&change!=0;i++){change=0;for(j=0;jlast-i;j++){if(L->data[j]>L->data[j+1]){x=L->data[j+1];L->data[j+1]=L->data[j];L->dat
8、a[j]=x;change=1;}}}}intBinSrch(RecordList*L,intk){//二分查找intlow=0,i=-1,high,mid;high=L->last;while(low<=high){mid=(low+high)/2;if(k==L->data[mid]){i=mid;break;}elseif(kdata[mid])high=mid-1;elselow=mid+1;}r