数据结构与算法实验源代码.doc

数据结构与算法实验源代码.doc

ID:55280868

大小:162.00 KB

页数:29页

时间:2020-05-08

数据结构与算法实验源代码.doc_第1页
数据结构与算法实验源代码.doc_第2页
数据结构与算法实验源代码.doc_第3页
数据结构与算法实验源代码.doc_第4页
数据结构与算法实验源代码.doc_第5页
资源描述:

《数据结构与算法实验源代码.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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。