数据结构实验报告-顺序表的创建、遍历及有序合并操作.docx
-
资源ID:379373
资源大小:20.32KB
全文页数:11页
- 资源格式: DOCX
下载积分:5金币
快捷下载

账号登录下载
微信登录下载
三方登录下载:
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
数据结构实验报告-顺序表的创建、遍历及有序合并操作.docx
数据构造实验报告-顺序表的创立、遍历及有序合并操作二、实验容与步骤实现顺序表的创立、遍历及有序合并操作,根本数据构造定义如下:typedefintElemType;*defineMA*SIZE100MefineFALSEO*defineTRUE1typedefstructElemTypedataMA*SIZEl;intlength;)seqlist;创立顺序表,遍历顺序表*include<stdio.h>*include<stdlib.h>*defineMA*SIZE100*definelcreament2*detneFALSEOMefineTRUElIypedefintElemType;/用户自定义数据元素类型顺序表构造体的定义typedefstructElemType*elem;/顺序表的基地址intlength;/顺序表的当前长度intlistsize;/预设空间容量SqList;/线性表的顺序存储构造SqLiSt*InitListO创立空的顺序表(SqList*L=(SqLiSt*)InallOCLiZeOf(SqLiSt)碇义顺序表Lif(!L)(空间划分失败,程序退出returnNULL;1.->elem=(ElemType*)malloc(MA*SIZE*sizeof(ElemType);if(!L->elem)(空间划分失败,程序退出returnNULL;)1.->length=O;1.->listsize=MA*SIZE;intCreateList(SqList*L)创立顺序表(非空)intnumber;顺序表中元素的个数inti;/循环变量请输入顺序表中元素的个数:if(number>MA*SIZE)一定要判断输入的个数是否大于顺序表的最大长度(输入个数大于顺序表的长度retum;for(i=O;i<number;i+)(输入第d个数/L->elem+i:每次的输入都保存在顺序表元素中的下一个地址,而不是向来放在元素的首地址/给顺序表中每一个数据元素赋值1.->length=number;/当前顺序表的长度VOidPint(SqLiSl*L)遍历Jl版序表inti;开场遍历顺序表fbr(i=O;i<L>length;i+)(+i)jL>elem+i:和输入是一个道理)遍历完毕)intmain(SqList*L=InitlJSt0;申请一个指向顺序表的指针,并对其初始化if(!L)/判断申请是否成功(初始化线性表失败return1;if(!CneateList(L)判断创立顺序表是否成功创立顺序表失败return1;pri11t(L);/打印顺序表与上面遍历顺序表相对应,假设没有就不遍历fe(L->elem);/释放申请的顺序表元素的存fe(L);/释放申请的顺序表存retm;)表的有序合并*include<stdio.h>*include<stdlib.h>*defineMA*SIZE100typedefintElemType;/顺序表构造体的定义typedefctructElemTypedataMA*SIZE;intsize;)seqlist;函数声明voidinit(seqlist*slt);VoiddispIay(Seqlistslt);VOidSOrt(SeqIiSt*s);voidbine(seqlist*sl,seqlist*s2,seqlist*s3);/顺序表的初始化函数VOidinit(SeqliSt*slt)(slt->size=O;)/顺序表的显示函数Voiddisplay(Seqlistslt)(inti;if(!sltsize)(顺序表为空)elsefor(i=O;i<sltsize;i+)顺序表排序voidsort(seqlist*s)inti;i11tj;inttemp;for(i=O;i<s->size-l;i+)(for(j=i÷lj<s->sizey+)(if(s->datai>=s->dataj)temjF=s->datai;s->datai=s->dataj;s->dataj=temp;两个有序顺序表连接函数voidbine(seqlist*sl,seqlist2,seqlist*s3)fQwp<ZS=W啊YES(azs<-s>p3iq)(9ZIS<-IS=l)jl(f+(t+f:照叩<修二闻唧<£S)sp(:+!也唧<S=闻啊<£S)(11w<ps=>MW<平派)(9zis<-3s>>¾>OZIS<-1S>I)911qM0=uo=r0=!Rk+;j+÷)if(j=s2->size)(while(i<sl->size)(s3->datak=s1->datai;k+;i+;)s3->sizeF=k;)主函数intmai11O(inti;intj;int*;intn;Seqlistlistl;seqlistlist2;seqlistlist3;init(listl);第一个顺序表元素个数:第一个顺序表输入:for(i=O;i<n;i+)(IistLsize+;)SOrt彼一个表排序init(list2);第二个顺序表元素个数:第二个顺序表输入:for(i=0<n+÷)list2.size+;soit(&list2)第二个表排序init(lis);bine(&listl,&list2,&list3);表一与表二连接后display(lis);retum;