北邮数据结构实验报告栈和队列

北邮数据结构实验报告栈和队列

ID:34386543

大小:222.96 KB

页数:8页

时间:2019-03-05

北邮数据结构实验报告栈和队列_第1页
北邮数据结构实验报告栈和队列_第2页
北邮数据结构实验报告栈和队列_第3页
北邮数据结构实验报告栈和队列_第4页
北邮数据结构实验报告栈和队列_第5页
资源描述:

《北邮数据结构实验报告栈和队列》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据结构实验报告实验名称:实验二——2.1题日1学生姓名:班级:班内序号:学号:日期:1.实验要求根据栈和队列的抽象数据类型的定义要求:1、实现一个循坏队列2、实现一个链队列编写测试main()^

2、数测试线性表的正确性。2.程序分析循环队列存储于表示示意图:空队reara2a4*reara3a4a1a2a3a4f^^AI^心心依次岀队rearHIOIJ皿凰翔一:X=[JU9J]E)Ep邸2—“丄”回参44卑国旳//aynmo%(屮呃間tMA

3、jj9A0Mmo」屮(juojj==9Z!S°nonD%(i+・n?oj))ji)UO・IJJKd.1

4、・IEZ00•阴.1JB9J)UO」JQP£乙L09P£乙L0QfrC3L0}^Y//(xi)on0nOuH::9n0nO9pJJDpiOAv丄ssup>01引duioitemplateTCircleQueue::DeQueue()〃出队{if(rear==front)throw"underflow";front=(front+1)%QueueSize;〃队头指针移向“下”一个位置returndata[front];时间复杂度为0(1)求队的长度:QucucSizc

5、<-空用区长度:front-n-k-1QueueSi

6、ze-1*1••••••Cl•••AAfrontrear算法步骤:templateintCircleQueue::Getlength(){return(rear-front+QueueSize)%QueueSize;时间复杂度为0(1)链队列存储于表示示意图:datanextAtrear>Atrear入队操作:frontrear算法步骤:templatevoidLinkQueue::EnQueue(Tx)〃入队{rear->next=newNode;//建立新结点rear=rear->next;

7、//移动队尾指针rear->data=x;rear->next=NULL;}时间复杂度为0(1)出队操作:front算法步骤:1・保存队头元素指针,即图中操作①;2.如果为空队,抛出异常;3.将原队头元素出链,即操作②;4.保存队头数据,即操作③5.释放原队头元素,即操作④6.若队列变为空队列,修改队尾指针,即操作⑤;7.返回出队数据templateTLinkQueue::DeQueue()//rH队{newNode*p=front->next;〃保存队头元素指针if(!p)throw"Underflow";front

8、->next=p->next;〃原队头元素出链Tx=p->data;〃保存队头数据deletep;〃释放原队头元素if(!(front->next))rear=front;//若队列变为空队,修改队尾指针returnx;时间复杂度为0(1)3、程序运行结果测试条件:入队元素数量小于队列长度减去已有队列元素数目。出队元素数量小于队列中元素数目。4.总结第三章介绍了堆栈与队列这两种运算受限制的线性结构。其基木运算方法与顺序表和链表运算方法基本相同,不同的是堆栈须遵循“先进后dr的规则,对堆栈的操作只能在栈顶进行;而队列要遵循“先进先出''的规则,教材

9、中列出了两种结构的相应算法,如入栈、出栈、入队、出队等。在介绍队列时,提出了循环队列的概念,以避免“假溢出''的现象。通过这次写实验报告,就编写的程序而言,虽然能达到预期的结果,但在运行时所需的时间比较长,而且主函数不够简洁,许多问题还需要继续研究,许多代码还需要更多的改进。在这次设计的过程屮,我还遇到了很多的问题。比如模板类的声明,主函数参数的使用等等。但是我都通过反复查看课本,去图书馆借一些参考资料,用Debug调试方法把他们都一一解决。而在编程过程中,在细节上总会出一些问题。比如有些变量的重复定义,有些变量又没有定义,丢掉一些定义符号等。为

10、了使程序正常运行,只有不断修改,在这个痛苦的过程屮我深刻理解到:细节决定成败,一个木桶能装多少水不在于它最高处有多高,而在于它最短的那一块,做算法编程亦是如此,因此,注重细节,完善知识点方可更加有效率的编程。这次课程设计也提醒我以前知识的廣乏,它给我敲响了警钟,让我意识到自己C++基础的不扎实,在以后的学习中,应经常对所学知识进行总结,举一反三,规范书写代码。对关键算法和语句英深入研究,不可阿冏吞枣。rti于平时上机练习的少,对于教材屮很多算法都掌握的不是很熟悉、不过这些都是可以弥补的,我会在剩下的时间中不断练习书上给出的算法和练习,正如教材上说

11、的,学习数据结构,仅从书本上学习是不够的,必须经过大量的程序设讣实践,在实践中体会构造性思维方法,掌握数据组织与程序设计技术。

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

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

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