资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机系数据构造实验报告(1)实验目的: 协助学生掌握线性表的基本操作在顺序和链表这两种存储构造上的实现,尤以链表的操作和应用作为重点。问题描述:1、 构造一种空的线性表。2、 在线性表L的第i个元素之前插入新的元素e;3、 在线性表L中删除第i个元素,并用e返回其值。实验规定:文法是一种四元1、 分别运用顺序和链表存储构造实现线性表的存储,并设计出在不同的存储构造中线性表的基本操作算法。2、 在实验过程中,对相似的操作在不同的存储构造下的时间复杂度和空间复杂度进行分析。算法分析:由于两种存储构造都用来创立线性构造的数据表,可采用相似的输出模式和整体构造类似的算法,如下: 实验内容和过程:顺序存储构造线性表程序清单:/顺序存储构造线性表的插入删除 #inclde isream#ncude sing namespcetd;# dfineLISTSZE 100# define CMENTSIZ 10tpedef chr EemTye; /定义数据元素类型为字符型 ped srut Eemype*elem; /数据元素首地址 nt le; /目前元素个数it istiz; /目前存储最大容量SqLs;/构造一种空的线性表LinntLi(Li &L) L.lem(Eleype *)maloc(ISTZE*sizeof(Elmype));if (!L.elm) exit(); /分派空间失败Llen=0;Listsiz=LISTSIZE;/在顺序线性表L中第个位置之前插入新的元素e int Listnsert(SqLs &L, i,Eleype e)f (i1|iL.en+) retn 1; /值不合法 i(L.len=Ltz) lemyp *newele=(ElemTye *)rell(Llm,(L.stizCEMENTSIZE)*sizeof(Elemype); /存储空间已满,增长分派 if(!newelem) ext(-2); /分派失败 L.elem=nee; .listsizREMENTSIZE; EemTy *q=(L.elemi-1) ; fr (leTypp=&(.elLn-);=q;-p) *(p+)*; /插入位置及其后的元素后移 *q=; +L.n;retun 1; /在顺序线性表L中删除第个元素,并用e返回其值int Ltelete(SqLi&L,ini,Elmyee) if (ih;f(ch=) ou; coute; couti; coutedl; prntf(输入数据:L(%s)DeletList(L,%,e),L.elem,i); state=Listelete(L,i,e);lse goto AGAIN; /操作批示符输入错误解决coutendl对的成果:; if(sate=1) tEROR,; rintf(L=(%s),.elem); /输出成果 i(h=&stt!=1) out,e#nclud next;1; whle(&jnet;+; /寻找第个元素 if(!p|ji) return-; /寻找失败 e=p-dat; return 1; int LitInsert(LinList &L,nti,EmType e) /在带头结点的单链线性表中第i个元素之前插入元素e ikListp,s; n j; p=L;j=; whle(&jex;+j; (!p|i-1)reurn -1; =(List) al( izeof(LNode)); -ata=e;s-nex=-next; pxt=s; rn1; intListDete(LikLis&L,nti,ElemType&e) /在带头结点的单链线性表L中,删除第i个元素,并由返回其值 LinL p,; int ; =L;j=0; whl(-nex&jnt;j; if(!(pn)|ji-1) tu -1; q-ne;p-nx=q-nxt; e-ata;free(q); reurn 1; nnewaa(LinkLi&L,hr c) ntk;prinf(请输入原始数据(字符串个数99):L=); /数据初始化 gt();fr (k0;chk!=0;k+) Linrt(L,k1,hk); /将初始化数据插入链表L中 coOKH;if(H=I) cut插在第几种元素之前:; /插入操作 cini; cute;coutdl; inf(输入数据:=(%)Listsert(L,%d,%c),ch,i,e); tae=LitInser(,i,); (he.daa)+; lse f(H=) cut删除第几种元素:; /
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号