循环链队列+课程设计

上传人:ji****72 文档编号:37688963 上传时间:2018-04-20 格式:DOC 页数:7 大小:47KB
返回 下载 相关 举报
循环链队列+课程设计_第1页
第1页 / 共7页
循环链队列+课程设计_第2页
第2页 / 共7页
循环链队列+课程设计_第3页
第3页 / 共7页
循环链队列+课程设计_第4页
第4页 / 共7页
循环链队列+课程设计_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《循环链队列+课程设计》由会员分享,可在线阅读,更多相关《循环链队列+课程设计(7页珍藏版)》请在金锄头文库上搜索。

1、课课 程程 设设 计计课程:数据结构课程:数据结构题目:循环链队列题目:循环链队列班级:班级:姓名:姓名:学号:学号:设计时间:设计时间:成绩:成绩:指导教师:指导教师:一、题目 题目循环链队列 4结构单链(指向后继) 表示类对象回传方式 操作初始化、入队、出队、清空队列。二、概要设计1.存储结构 typedef int DataType; struct NodeDataType d;struct Node *next; ;class Queuestruct Node *trail; public:Queue();void In(DataType x);int Out(DataType int

2、 Clear(); ;trailDatanextDatanextDatanextDatanext2.基本操作(声明函数) Queue:Queue() 构造函数void Queue:In(DataType x)用于入队列 int Queue:Out(DataType if (NULL=trail)coutd=x;trail-next=trail;else struct Node *tmp=trail-next;trail-next=new Node;if (trail-next=NULL)coutnext;trail-d=x;trail-next=tmp; (2)出队列核心步骤 int Queu

3、e:Out(DataType delete trail;trail=NULL;else struct Node *tmp=trail-next;x=tmp-d;trail-next=tmp-next;delete tmp;return 0; (3)清空队列核心步骤 int Queue:Clear() struct Node *tmp=NULL;if(NULL=trail)coutnext)tmp=trail-next;trail-next=tmp-next;delete tmp;delete trail;trail=NULL;return 0; (4)框图Queue - trail:Node

4、* + Queue() + In(DataType x):void + Out(DataType typedef int DataType; struct NodeDataType d;struct Node *next; ;class Queuestruct Node *trail; public:Queue();void In(DataType x);int Out(DataType int Clear(); ;Queue:Queue()trail=NULL; void Queue:In(DataType x) if(NULL=trail)trail=new Node;if (NULL=t

5、rail)coutd=x;trail-next=trail;else struct Node *tmp=trail-next;trail-next=new Node;if (trail-next=NULL)coutnext;trail-d=x;trail-next=tmp; int Queue:Out(DataType delete trail;trail=NULL;else struct Node *tmp=trail-next;x=tmp-d;trail-next=tmp-next;delete tmp;return 0; int Queue:Clear() struct Node *tm

6、p=NULL;if(NULL=trail)coutnext)tmp=trail-next;trail-next=tmp-next;delete tmp;delete trail;trail=NULL;return 0; int main()int i=1,x,y,stat=0;Queue q;while(i)couti;switch(i)case 1:coutx;q.In(x);break; case 2:stat=q.Out(y);if (0=stat) cout“出队列:“yendl;break; case 3:stat=q.Clear();if (0=stat) cout“队列已清空!n

7、“;break; case 4:exit (0);default:if(i!=0) cout“选择有错!请你重新选择!n“;return 0; /*附测试数据 1 /执行入队功能 2 /输入数字 2 1 /执行入队功能 3 /输入数字 3 2 /执行出队功能 2 /出队为 2 3 /清空队列 2 /出队列 4 /结束程序 */五、测试 *1 入队列 2 出队列3 清空 4 退出程序 * 请选择: 1 请你输入进队列的元素值: 2 *1 入队列 2 出队列3 清空 4 退出程序 * 请选择: 1 请你输入进队列的元素值: 3 *1 入队列 2 出队列3 清空 4 退出程序 * 请选择: 2 出队

8、列:2 *1 入队列 2 出队列3 清空 4 退出程序 * 请选择: 3 队列已清空! *1 入队列 2 出队列3 清空 4 退出程序 * 请选择: 2 此队列为空! *1 入队列 2 出队列3 清空 4 退出程序 * 请选择: 4六、总结 这次数据结构的课程设计即将结束,但这次课程设计给我们留下了不少反思,那就是我们 如何让处理对程序的实践动手能力和我们应当怎样合理的在程序的编写过程中对我们所学的最 基础的程序设计语言 C+进行巩固。 在此次课程设计中,我深深发现自己所存在的基础不牢固的问题,这使我在一些基础问题 上都感到一些吃力。在程序的编译中不得不边查书边做程序的大部分。而那些经常进行程

9、序设 计的人则显得十分从容,因为他们的基础打得比较基础牢固。所以在这次课程设计中,我们发 现,绝对不能忽视平时的训练,这样,我们才能真正提高自己的编程能力。 同时,我这次选得题目是循环连队列,这个课题在课本上讲的并不多,我们不得不通过图 书馆的资料和老师给的已有程序来编些自己的程序。在这个过程中,我也发现,在学习的过程 中,通过大量课外的资料,我们可以了解许多书上并没有的东西。通过对与自己学习相关的资 料的认识与了解,同时也就帮助了我们更好的学习书本的知识。 所以,总体上说,这次课程设计还是带给我了不少收获。因为通过这次课程设计已经达到 使我有机会锻炼自己同时温故而知新的目的。相信在以后的程序设计中,这次课程设计留给我 们的经验将会对我们有很大的帮助。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号