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

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

ID:48016397

大小:628.50 KB

页数:13页

时间:2020-01-18

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

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

1、数学与计算科学学院实验报告实验项目名称队列的链式表示和实现所属课程名称数据结构实验类型验证型实验日期2013年11月14日班级      学号     姓名   成绩12一、实验概述:【实验目的】1.队列的逻辑结构特征1.1是一种只允许在表的一端进行插入,在另一端删除元素的线性表;1.2是一种先进先出的线性表。2.掌握队列的特点及单链队列在链式存储结构上的实现。【实验原理】1.队列的特点1.1队列是一种先进先出的特殊线性表;1.2队列中,队尾允许插入元素,队头允许删除元素。2.单链队列的类C语言------------队列的链式存储结构-----------ty

2、pedefstructQNode{QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{QueuePtrfront;//队头指针QueuePtrrear;//队尾指针}LinkQueue;【实验环境】VC++6.0二、实验内容:【实验方案】编写主函数,调用初始化建空队列、插入、删除、销毁队列的算法,调试运行,得出结果。【实验过程】(实验步骤、记录、数据、分析)一.典型错误举例121.运行算法时遇到的典型错误例1:错误分析:仔细观察会发现此处是大小输入错误,导致报出错误P为定义,应该把大写的P改

3、为小写p。由于p的大小写区别不大,因此每次在输入时一定要格外小心,避免再出现同样的错误。例2:错误分析:表示未对P进行定义,双击错误行,指向p=(QueuePtr)malloc(sizeof(QNode));返回查看之后,发现不是把小写p输成大写P了,所以错误就是p没有给出定义。故在所指行的前面加上QueuePtrp;对p进行定义就可以了。2.编写主函数时遇到的典型错误例:调试结果:错误分析:表示DestroyQueue12未定义,双击错误行,显示:这里显示的DestroyQueue未定义的错误只可能是DestroyQueue拼写错误,错误所指行拼写无误,返回上

4、面查找DestroyQueue的拼写错误:将DestoryQueue改为DestroyQueue,再次调试:输入主函数之前运行算法时,由于后面没有出现DestroyQueue,故不会出现前后不一致的情况,便不会报错。3.完善主函数时遇到的典型错误例:调试结果:运行结果:12错误分析:观察以上现象发现调试无误,但是在输完6个数后,却没有重新打印出顺序栈,返回主函数初始化建空栈的重新打印输入的顺序栈一行查找错误:发现打印顺序栈的语句的位置放错了,应该放在for语句的前面:改正之后运行出结果:12在程序运行的过程中,往往容易忘记程序中算法的顺序,导致运行时不知怎么操作

5、,于是在主函数中添加汉字提示,会使得程序运行起来更加方便快捷。二.测试数据1.前面几次运行,输入栈的数字小而且单一,没有代表性,于是需换些比较复杂一点的数字进行测试。第一组测试,结果:第二组测试,结果:12第三组测试,结果:观察上面的输出窗口,发现此三组数据测试无误。2.当实际输入的元素个数小于理论上应该输入的个数n时,就按了Enter键,第三行不会显示任何数据,但是有一个闪动光标暗示我们还需继续输入,当输入个数刚好等于n时,按Enter键,还是一样会重新打印输入的顺序栈。3.当输入到栈中的元素不是数字而是字母时会报错:12栈是一种特殊的线性表,而线性表本身就是

6、一种数据结构,因此输入字母是不对的。【实验结论】(结果)【实验小结】(收获体会)本次实验不仅加深了我对顺序栈特点的理解,掌握了顺序栈的基本运算,而且实践了用顺序存储结构实现顺序栈的基本操作。几次实验之后,敲算法不出错误对我们来说已经不是难事了,还记得第一次实验的时候,一堆输入语法错误。因此敲算法不仅锻炼人的耐力,更能体现一个人做事的态度,多敲算法,多实践总归是好的。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.

7、12成绩:指导教师签名:批阅日期:附录1:源程序#include#include#defineOK1#defineOVERFLOW-2#defineERROR0typedefintStatus;typedefintQElemType;typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{QueuePtrfront;//对头指针QueuePtrrear;//队尾指针}LinkQueue;StatusInitQueue(L

8、inkQueue&Q){

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

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

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