单链表操作验证实验报告.docx

上传人:lao****ou 文档编号:635172 上传时间:2024-03-13 格式:DOCX 页数:9 大小:22.86KB
下载 相关 举报
单链表操作验证实验报告.docx_第1页
第1页 / 共9页
单链表操作验证实验报告.docx_第2页
第2页 / 共9页
单链表操作验证实验报告.docx_第3页
第3页 / 共9页
单链表操作验证实验报告.docx_第4页
第4页 / 共9页
单链表操作验证实验报告.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单链表操作验证实验报告.docx》由会员分享,可在线阅读,更多相关《单链表操作验证实验报告.docx(9页珍藏版)》请在第一文库网上搜索。

1、实验报告实验名称单链表操作验证实验一单链表操作验证一.实验目的(1)掌握线性表的链接存储结构;验证单链表及其基本操作的实现;进一步掌握数据结构及算法的程序实现的基本方法。二,实验内容用头插法(或尾插法)建立带头结点的单链表;对已建立的单链表实现插人、删除、查找等基本操作。三.实验步骤1 .需求分析本演示程序用VC+编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;查找操作时需要输入元索的值。在所有输入中,元素的值都是整数。输出的形式:在所有三种操作中都显示操作是否正确以

2、及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。程序所能达到的功能:完成单链表的生成(通过插入操作)、插入、删除、查找操作。测试数据:(1)生成单链表123234345456(2)查找1位置为23(3)删除数据2(4)插入267(5)输出数据I232673454562 .源程序如下:#inc1ude#inc1ude#inc1ude#inc1ude#def1neNU11Ostructdata(intnum;intd;structdata*next;);structdata*head,*p,*tai1;int1en,i;structdata*creat()(

3、intn;1en=sizeof(structdata);PriIItfneii=);scanf(,%d,n);Printfr输入创建单链表:n”);head=(structdata*)ma11oc(1en);Printf(数据位置和数据八n”);SCanf(%d%d,&head-num,&head-d);tai1=head;for(i=2;inum,&p-d);tai1-next=p;tai1=p;tai1-next=NU11;return(head);)voidoutput(structdata*head)intj;structdata*p,*p1;p=head;for(j=0;j1en;j

4、+)(for(i=0;inext;if(p-nump-num)p1=p;p=pO;pO=p1;for(p=head;p!=NU11;p=p-next)printf(,%d:%dn,p-nun,p-d);structdata*ins(structdata*head)structdata*p,*p1,*p2;structdata*ins;Prii1tfr输入插入的位置和数据:);ins=(structdata*)ma11oc(1en);scanf(,%d%dins-numins-d);p1=head;p=ins;if(head=NU11)head=pO;pO-next=NU11;e1se(whi1

5、e(pO-nump1-num)&(p1-next!=NU11)p2=p1;p1=p1-next;)if(p-nunnum)(if(head=p1)head=p;p-next=p1;)e1sep1-next=pO;pO-next=NU11;for(p=head;p!=NU11;p=p-next)printf(,%d:%dnn,p-num,p-d);return(head);)structdata*de1(structdata*head)(structdata*p1,*p2;intnum;Printf(输入删除位置:);scanf(,%d,Anum);if(head=NU11)printf(链表空

6、!n”);gotoend;p1=head;whi1e(p1-num!=num&p1-next!=NU11)p2=p11=p1-ncxt;)if(p1-num=num)if(p1=hcad)head=p1-next;e1sep2-next=p1-next;e1sePri1Itf(没有发现d!n”,num);for(p=head;p!=NU11;p=p-next)printf(*%d:%dn*,p-num,p-d);cn(i:return(hcad);voidfind(structdata*head)structdata*p1;intnum;Printfr输入查找位置:);scanfC,%d,nu

7、m);if(head=N11)printf(链表空!n);gotoend;p1=head;whi1e(p1-num!=num&p1-next!=NU11)p1=p1-next;)if(p1-num=num)(Prii1tfr这数据信息n”);printf(,%d:%dn,p1-nun,p1-d);)e1seprintf(,*%d没有发现!n”,num);end:;voidmain()structdata*head;intse1ect;head=NU11;whi1e(1)(Printf(”I:创建2:插入3:删除4渣找5:输出6:退出n);printf(*p1easeinputse1ect:*)

8、;scanf(,%d,sc1ect);Switch(Se1ect)case1hcad=创建(“break;case2:head=插入(head);break;case3:head=删除(head);break;case4:查找d(head);break;case5:输出(hcad);brcak;case6:退出(0);)3.使用说明:创建2: 插入3: 删除4: 查找5: 输出6: 退出Se1ect:在SeIeCt后输入数字选择执行不同的功能。要求首先输入足够多的插入元素,才可以进行其他的操作。每执行一次功能,就会显示执行的结果(正确或错误)以及执行后单链表的内容。选择1.创建一个单链表。选择

9、2.选择插入的位置和和数据。选择3.输入要删除的位置,程序将删除该位置的数据。选择4.输入查找到位置,程序将显示该位置的数据。选择5.程序将自动输出经过变化后的单链表。选择6.退出程序。4.测试结果截图:XDocuMentsandSettingSAdinDebug试验.exeH2:插入3:删除4:查找5:输出6:推出e5输th1tenumberanddata:63892:插入3:删除4:查找5:输出6:推出插入3:删除4:查找5:输出6:推出:32:插入3:删除4:查找5:播出6:推出据:2入位置和插入数据:2783:删除4:查找5:输出6:推出四、实验总结(结果分析和体会)1 .我又进一步巩固了C语言的基础,尤其是指针那部分;2 .通过实验加深了对线性表的操作方面知识的认识。更深层次了解了单链表的操作特点及优缺点;3 .通过实验达到了理论与实践结合的目的,提高了自己的编程能力;4 .通过实验是我进一步对单链表进行了复习与巩固。这是在实践中对自我能力的提高。.程序可能不够完善需要在学习过程中不断去完善,这需要平时的努力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服