队列应用实验
《队列应用实验》由会员分享,可在线阅读,更多相关《队列应用实验(3页珍藏版)》请在装配图网上搜索。
1、实验八 队列的应用一、实验目的1、 掌握用VC工具上机调试队列的存储方式和基本操作。2、 掌握队列的顺序存储结构;3、 掌握队列先进先出运算原则在解决实际问题中的应用。二、实验学时2学时三、实验类型验证型四、实验内容利用循环顺序队列打印杨辉三角形。打印的杨辉三角形如下所示:1111 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1五、实验原理1、 循环队列概述 循环队列是队列的顺序映像的实现,采用顺序存储结构存储队列,会产生假溢出现象,循环队列是解决假溢出的很好途径。若队列为空时队头指示器与队尾指示器同时指向某一存储单元,即此时两个指示器的数值相
2、同,若队列非空,队头指示器指向队头元素下标,队尾指示器指向队尾元素的下一个位置的下标;队列由于在一端入队,在另一端出队,故而是一种先进先出的数据结构。杨辉三角的输出可用数组解决,通过二维数组来存储,二重循化来生成杨辉三角,但这样做显然掩盖了问题的本质。因为杨辉三角的输出具有先进先出的特点,第i行可由第i-1行来生成,那么第i行入队可借助于第i-1行出队,那么通过队列更易实现。 2、杨辉三角程序的基本算法(1)SeqQueueInitiate(Q); 初始化循环队列Q 。(2)SeqQueueEmpty(Q); 判断循环队列Q非空否操作 。(3)EnSeqQueue(Q,x); 循环队列入队操作
3、,在队列Q的队尾插入数据元素x。 (4)DeSeqQueue(Q,d); 循环队列出队操作,把队列Q的队头元素删除并由参数d带回。(5)GetHead(Q); 取队列Q队头元素。(6) YangHuiTriangle (); 生成且输出杨辉三角。3、模块层次图要求画出循环队列的模块层次图。如图所示图15 杨辉三角程序模块层次图4、关键算法NS图六、实验步骤及要求用VC语言编程实现建立一个队列Q,借助于栈队列Q进行打印杨辉三角。1. 队列Q初始化;2. 输入杨辉三角规模的数值n;3. 输出经过程序运行后的规模n的杨辉三角;4. 程序完成。七、运行结果图16 杨辉三角程序运行图八、思考问题结合实验过程,回答下列问题:1、 杨辉三角输出问题使用数组与队列有何区别?时间复杂度与空间复杂度有何区别?2、 数组与队列来解决杨辉三角问题那种选择为最佳选择?为什么?九、实验报告要求1、 根据对队列的先进先出特点的理解,如何应用队列的基本操作;2、 何时选用队列去解决实际问题;3、 采用队列解决问题的特点;4、 调试程序过程中遇到的问题及解决方案;5、 本次实验的结论与体会。
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。