欢迎来到天天文库
浏览记录
ID:10987143
大小:203.50 KB
页数:29页
时间:2018-07-09
《数据结构实习报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、3109测绘与国土信息工程学院《数据结构》课程实验报告姓名:学号:班级:成绩:实验态度:1、认真2、良好3、一般4、不认真实验成果:1、优秀2、可信3、一般4、不真实实验报告:1、清晰完整2、比较完整3、不清晰教师签名:____________交报告日期:2011年7月1日293109目录实验一线性表的链表实现类的设计3实验二顺序栈的自定义类设计7实验三字符串的操作类设计11实验四树和二叉树的自定义类的设计18实验五图的最短路径算法设计21实验六自定义类应用综合设计26293109实验一线性表的链表实现类的设计一、需求分析本次程序设计要求建立一
2、个以链表为储存方式的线性表,以及实现线性表所需求的各种功能。对线性表的操作有:(1)输入形式为从键盘输入,用户根据界面的提示从键盘直接输入所对应的数即可。输入的值要求为整数类型,用户输入其它类型的数据时(例如字符串)会产生不可预测的错误。(2)输出的界面为DOS窗口,系统按照用户输入的数据类型,将会把相应的输出结果显示到界面上。(3)程序可以建立一个以链表形式储存的线性表,对线性表可以进行查找、删除、插入、构造、销毁和获取链表长度的操作。(4)以L1={0,5,9,10,12,12,17,20,24}构造链表;找到重复的第二个元素12并删除它;
3、在第五个元素后插入55;生成L2={33,45,50}的链表并将它与L1的链表合并。二、概要设计structLinkNode{intdata;LinkNode*link;LinkNode(LinkNode*ptr=NULL){link=ptr;}LinkNode(constintx,LinkNode*ptr=NULL){data=x;link=ptr;}293109};classList{public:List(){first=newLinkNode;}List(constintx){first=newLinkNode(x);}List(Lis
4、t&L);~List(){MakeEmpty();deletefirst;}LinkNode*Search(intx);LinkNode*Locate(inti);LinkNode*GetHead()const{returnfirst;}intGetData(inti);voidDeleteRepeatedElem();voidInput();voidDisplay();List&operator=(List&L);private:LinkNode*first;};List::List(List&L){intval;LinkNode*srcPt
5、r=L.GetHead();LinkNode*desPtr=first=newLinkNode;while(srcPtr->link!=NULL){val=srcPtr->link->data;desPtr->link=newLinkNode(val);desPtr=desPtr->link;srcPtr=srcPtr->link;}desPtr->link=NULL;}一、显示详细设计intmain(intargc,char*argv[]){ListL1;intd;L1.Input();L1.Display();L1.DeleteRepeat
6、edElem();293109L1.Display();L1.Insert(5,55);L1.Display();L1.Remove(6,d);L1.Display();ListL2;L2.Input();L2.Display();L1.MergeList(L2);L1.Display();return0;}一、运行结果显示二、调试分析:本次试验中刚开始不知道怎么调试,总是出现各种各样的错误,不知道怎么回事,大部分都是通过百度来了解那里出现错误,也同时对bool函数进行深入的了解,bool函数在我们学C++时候,老师没有讲,缺乏使用的经验293
7、109六、思考与小结在本次试验中我明白链表的的类的定义,链表的插入,链表的定位,链表的排序等函数的写法,但是如果让我自己不参考课本还是写不出来,但是能明白代码的含义及程序运行的顺序,基本的出错修正,有时候也不知道出现什么问题,没有错误,但是总是运行不了,到最后通过百度才明白是构造函数出现错误了,这样的错误在我们学习C++的时候也出现过,但是好像在visualstudio2010没有出现类似的错误,但是也没有找出根本原因,就放在那里了,293109实验二顺序栈的自定义类设计一、需求分析本次程序设计要求建立一个栈的顺序存储结构类,以及实现线性表所需
8、求的各种功能。对栈的操作有:(1)输入形式为从键盘输入,用户根据界面的提示从键盘直接输入所对应的数即可。输入的值要求为整数类型,用户输入其它类型的数据
此文档下载收益归作者所有