版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子信息学院 实验报告书数据结构循环队列的实现和运算设计BX1001课程名:题 目:实验类别班 级:学 号:姓 名:101003020141赵艳10日2011 年 10算法设计与分析实验报告-1 -1、实验题目(1) 掌握队列“先进先出”的特点;(2)复习队列的入队、出队、插入、删除等基本运算。(3)掌握循环队列的特点,以及循环队列的应用。2、实验内容(1)在顺序存储结构上实现输出受限制的双端循环队列的入队和出队(只允许队头输出)算法。(2)设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作 业优先原则,若一个新提交的作业的预计执行时间小于对头和队尾作业的平均时间,
2、则插 入在队头,否则插入在队尾。(3)循环队列数据类型:#define MAXLEN 10typedef struct int dataMAXLEN;int fron t,rear; csequeue;(4)入队作业处理的预计执行时间可以用随机数函数ran d()产生,也可以从键盘输入。3、实验要求(1)利用C (C+)语言完成算法设计和程序设计。(2)上机调试通过实验程序。(3)输入数据,检验程序运行结果。(4)给出具体的算法分析,包括时间复杂度和空间复杂度等。(5)撰写实验报告。4、实验步骤与源程序实验步骤首定义MAXLEN=1,然后初始化队列,再定义数据类型、头、尾指针。下面定义五个函数
3、,分别 是入队函数、出队函数、显示函数和长度计算函数。在入队时要判断是否队满,队满不能入队。出 队要判断队是否为空,队空不能出队。判断队列长度的函数,用队尾指针与队首指针之差来计算。最后的主函数是一个队列菜单和相应的对函数的调用,菜单界面主要通过printf ()函数来实现,下面一一对应有switch ()语句来实现。源代码#in clude<stdio.h>#defi ne MAXLEN 10typedef struct int dataMAXLEN;/定义数据的类型算法设计与分析实验报告-# -算法设计与分析实验报告-2 -int fron t,rear;/定义队头、队尾指针算
4、法设计与分析实验报告-3 -csequeue;csequeue q;初始化队列void Ini Queue()/ q.fro nt=q.rear=MAXLEN-1;入队函数void In Queue()/ int x ;prin tf("ntt输入一个入队的整数数据:");scan f("%d",& x);if (q.fro nt=(q.rear+1) % MAXLEN ) printf("ntt队满,不能入队! n”); return; q.rear=(q.rear+1) % MAXLEN;q.dataq.rear=x;prin tf
5、("nttvoid Outsequeue() if (q.fron t=q.rear) printf ("ntt入队成功! n");/此队列为空! "); return ;/出队函数队空不能出队算法设计与分析实验报告-# -算法设计与分析实验报告-# -else q.fro nt=(q .fron t+1) % MAXLEN;prin tf("ntt出队元素为:%dn",q.dataq.fro nt); /输出队头元素算法设计与分析实验报告-# -算法设计与分析实验报告-5 -return;显示函数void ShowQueue()/
6、int k=q.fr ont;此队列为空! n"); return;此队列元素为:");if (k=q.rear) prin tf("nttprin tf("nttdo k=(k+1)%MAXLEN;prin tf("%4d",q.datak); while(k!=q.rear);prin tf("n");int len gth() int k;k=(q.rear-q.fro nt+MAXLEN)% MAXLEN;return k;void main()/主函数 int i=1;int choice;Ini Que
7、ue();while (i)prin tf("ntt循环队列n");prin tf("ntt* *");prin tf("ntt*");prin tf("ntt*");prin tf("ntt*");prin tf("ntt*");prin tf("ntt*");prin tf("ntt* *");prin tf("nntt请选择菜单号:”);scan f("%d",&choice); switch
8、(choice)case 1: ShowQueue(); break;case 2: In Queue(); break;case 3: Outsequeue(); break;case 4: prin tf("ntt队列长度为:%d n",length();break;case 0: i=0; break;5、测试数据与实验结果(可以抓图粘贴)循环队列12 3 4 0队队-回长列队进出显求返请选择菜单号:1输入一个入队的整数数据;1循坏队列12 3 4 0H H H 丹仔K-MK-MT 丹叶算法设计与分析实验报告-# -算法设计与分析实验报告-# -请选择菜单号:3此队列
9、元素为乂1 13循环队列算法设计与分析实验报告-# -算法设计与分析实验报告-# -三二队队-$!回长列进出显求返12 3 4 0M w M M M二二沁算法设计与分析实验报告-6 -请选择菜单号:4 队列长度为:36、结果分析与实验体会程序可以运行,结果正确,在实验中是对五个函数的调用,我在实验中更清楚的 认识到队列跟栈的不同,队列是先进先出,栈是后进先出。但这个程序只有对一个元 素的处理,入队、出队、显示、求长度,出栈后队列长度为0。进队是通过把新元素插入队尾,出队是输出队头元素。我再次加深了入队要判断栈满,用语句q.fro nt=(q.rea叶1)% MAXLEW断,入队有两种输入方法,队首和队尾。出队要判断队是否为空,用语句q.fro nt=q.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度个人信用贷款合同标准版本2篇
- 出国留学销售代表销售总结报告
- 二零二五版牙科诊所绿色环保材料使用协议3篇
- 二零二五年度公租房买卖合同模板及注意事项3篇
- 二零二五年度新能源项目居间合作协议4篇
- 二零二五年度个人商铺买卖合同示范4篇
- 2025版赎楼担保与房地产抵押贷款合同6篇
- 2025版物业管理公司人力资源外包合作协议书范本3篇
- 二零二五年度移动支付解决方案个人定制开发合同4篇
- 二零二五年度高空作业施工围板租赁与安装服务合同2篇
- 人教版六年级数学上册《应用题》专项练习题(含答案)
- 第三单元 叹锦绣中华书传统佳话(教学设计) 三年级语文下册大单元教学(部编版)
- 洛奇化石复原脚本
- 人教版三年级上册竖式计算练习300题及答案
- 【“凡尔赛”网络流行语的形成及传播研究11000字(论文)】
- 建筑工程施工安全管理思路及措施
- 领导干部的情绪管理教学课件
- 初中英语-Unit2 My dream job(writing)教学课件设计
- 供货方案及时间计划安排
- 唐山动物园景观规划设计方案
- 中国版梅尼埃病诊断指南解读
评论
0/150
提交评论