线性表的链式表示和实现(含源程序).doc

线性表的链式表示和实现(含源程序).doc

ID:57187622

大小:633.00 KB

页数:12页

时间:2020-08-05

线性表的链式表示和实现(含源程序).doc_第1页
线性表的链式表示和实现(含源程序).doc_第2页
线性表的链式表示和实现(含源程序).doc_第3页
线性表的链式表示和实现(含源程序).doc_第4页
线性表的链式表示和实现(含源程序).doc_第5页
资源描述:

《线性表的链式表示和实现(含源程序).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数学与计算科学学院实验报告实验项目名称线性表的链式表示和实现所属课程名称数据结构实验类型验证型实验日期2013年10月31日班级        学号        姓名    成绩一、实验概述:【实验目的】1.线性表的逻辑结构特征1.1总存在第一个和最后一个元素;1.2除第一个元素以外,每个元素总存在唯一一个直接前驱元素;1.3除最后一个元素以外,每个元素总存在唯一一个直接后继元素。2.掌握单链表的基本操作在链式存储结构上的实现。【实验原理】1.线性链表的特点1.1线性链表是一种动态分配的存储结构;1.2每一个结点的指针域指向其直接后继结点(伪结点除外);1.3指针为数据元素之间的

2、逻辑关系的映像。2.线性表的单链表存储结构TypedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;【实验环境】VC++6.0二、实验内容:【实验方案】编写主函数,调用线性链表的初始化建空表,查找、插入和删除算法,调试运行,得出结果。【实验过程】(实验步骤、记录、数据、分析)一.典型错误举例及改正措施例错误分析:过于大意,直接将上一次算法之前的定义之类的内C语言复制过来,导致将线性表的单链表存储结构输成线性表的动态分配顺序存储结构。然后就出来上述LinkList未定义,L未定义,还有掉分号,掉括号之类的各种错

3、误。二.完善主函数及过程错误分析以上输出窗口这种形式的输出容易使人输完一步,然后忘记下一步该干嘛,于是这时候完善一下主函数,使得输出窗口每一步操作之前都加上提示语会更好。以下是完善主函数的过程:1.在主函数每一项输入之前加上一串汉字提示下一步的操作,于是主函数部分变为然后调试,发现报出如下错误:(后面还有好多行,这里只列举一部分)错误分析:printf后面括号中的引号应为因为格式,这里却输成中文格式了,故报出以上错误。错误改正之后,调试:0错误,0警告。运行结果:2.观察上述运行结果发现,输出窗口还是不够完善,这里只有提示下一步的操作,但是没有显示操作之后输出的一串数字具体是什么。

4、于是在主函数中继续加相应格式的汉字提示,得到:然后调试:0错误,0警告。运行结果:至此,主函数完善完毕。三.测试数据1.前面几次运行,单链表的数字都比较简单且连续,于是换些比较复杂一点的数字测试,结果:观察输出窗口,发现该组数据测试无误。2.当实际输入的元素个数小于理论上应该输入的个数n时,就按了Enter键,第三行不会显示任何数据,但是有一个闪动光标暗示我们还需继续输入,当输入个数刚好等于n时,按Enter键,还是一样会逆序位输出原来的单链线性表L。但是当实际输入元素个数大于n时,会自动逆序位输出前n个元素,除了查找元素会报错,其他都按前n个元素输入正常运行。3.当输入的链表中的

5、元素不是数字而是字母时会报错:【实验结论】(结果)【实验小结】(收获体会)通过此次上机实验,除了对程序中主函数的编写及程序的完善有了很大的突破之外,还熟悉并实践了单链线性表的逆序位输出、查找、插入和删除算法。由于吸取上次教训,此次敲算法时格外小心注意,因此这次一些语句语法错误之类的错误就没有了,但是对程序的完善过程却有了很大感悟,一个好的程序不仅只是要把结果运行出来,而且要让人们在操作时更加便捷。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实

6、验结论正确.成绩:指导教师签名:批阅日期:附录1:源程序#include#include#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;typedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;voidCreateList_L(LinkList&L,intn){//逆序位输入n个元素的值,建立带表头结点的单链线性表L。inti;Li

7、nkListp;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;//先建立一个带表头结点的单链表for(i=n;i>0;--i){p=(LinkList)malloc(sizeof(LNode));//生成新结点scanf("%d",&p->data);p->next=L->next;L->next=p;}}//CreateList_LStatusGetElem_L(LinkListL,inti,ElemType&e){/

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

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

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