




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子信息学院实验报告书课程名:数据结构题目:循环队列的实现和运算实验类别设计班级:BX1001学号:101003020141姓名:赵艳2011年10月10日1、实验题目(1)掌握队列“先进先出”的特点;(2)复习队列的入队、出队、插入、删除等基本运算。(3)掌握循环队列的特点,以及循环队列的应用。2、实验内容(1) 在顺序存储结构上实现输出受限制的双端循环队列的入队和出队(只允许队头输出)算法。(2) 设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作业优先原则,若一个新提交的作业的预计执行时间小于对头和队尾作业的平均时间,则插入在队头,否则插入在队尾。(3) 循环
2、队列数据类型:#defineMAXLEN10typedefstructintdataMAXLEN;intfront,rear;csequeue;(4)入队作业处理的预计执行时间可以用随机数函数rand()产生,也可以从键盘输入。3、实验要求(1) 利用C(C+)语言完成算法设计和程序设计。(2) 上机调试通过实验程序。(3) 输入数据,检验程序运行结果。(4) 给出具体的算法分析,包括时间复杂度和空间复杂度等。(5) 撰写实验报告。4、实验步骤与源程序实验步骤首定义MAXLEN=10然后初始化队列,再定义数据类型、头、尾指针。下面定义五个函数,分别是入队函数、出队函数、显示函数和长度计算函数。
3、在入队时要判断是否队满,队满不能入队。出队要判断队是否为空,队空不能出队。判断队列长度的函数,用队尾指针与队首指针之差来计算。最后的主函数是一个队列菜单和相应的对函数的调用,菜单界面主要通过printf()函数来实现,下面一一对应有switch()语句来实现。源代码#include<stdio.h>#defineMAXLEN10typedefstructintdataMAXLEN;/定义数据的类型intfront,rear;/定义队头、队尾指针csequeue;csequeueq;voidIniQueue()/q.front=q.rear=MAXLEN-1;)voidInQueue
4、()/intx;printf("ntt输入一个入队的整数数据:");scanf("%d",&x);if(q.front=(q.rear+1)%MAXLEN)printf("ntt队满,不能入队!n");return;q.rear=(q.rear+1)%MAXLEN;q.dataq.rear=x;printf("ntt入队成功!n");voidOutsequeue()/if(q.front=q.rear)printf("ntt此队列为空!");return;/else初始化队列入队函数出队
5、函数队空不能出队q.front=(q.front+1)%MAXLEN;printf("ntt出队元素为:%dn",q.dataq.front);/return;输出队头元素voidShowQueue()/显示函数intk=q.front;if(k=q.rear)printf("ntt此队列为空!n");return;printf("ntt此队列元素为:");dok=(k+1)%MAXLEN;printf("%4d",q.datak);while(k!=q.rear);intlength()intk;k=(q.rea
6、r-q.front+MAXLEN)%MAXLEN;returnk;voidmain()/主函数inti=1;intchoice;IniQueue();while(i)printf("ntt循环队列n");printf("ntt*1显示*"printf("ntt*2进队*"printf("ntt*3出队*"printf("ntt*4求队列长度*"printf("ntt*0返回*");););););printf("ntt*");printf("nt
7、t*");printf("nntt请选择菜单号:");scanf("%d",&choice);switch(choice)case 1: ShowQueue();break;case 2: InQueue();break;case 3: Outsequeue();break;case4:printf("ntt队列长度为:%dn",length();break;case0:i=0;break;算法设计与分析实验报告-4-)5、测试数据与实验结果(可以抓图粘贴)12340队队-回长列队进出显求返请选择菜单号:1循环队列IIIK-MW队队一回长列12340请选择菜单号:3此队列元素为工【心队队一长列进出显求返12340请选择菜单号;4队列长度为:36、结果分析与实验体会程序可以运行,结果正确,在实验中是对五个函数的调用,我在实验中更清楚的认识到队列跟栈的不同,队列是先进先出,栈是后进先出。但这个程序只有对一个元素的处理,入队、出队、显示、求长度,出栈后队列长度为00进队是通过把新元素插入队尾,出队是输出队头元素。我再次加深了入队要判断栈满,用语句q.front=(q.rear+1)%MAXLEN判断,入队有两种输入方法,队首和队尾。出队要判断队是否为空,用语句q.front=q.rear判断。如果不判断,会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物品结算合同(标准版)
- 教师招聘之《幼儿教师招聘》综合练习带答案详解(培优b卷)
- 2025年学历类自考中国古代文学史(二)-中国古代文学史(二)参考题库含答案解析(5卷)
- 2025-2030中国园区经济行业发展模式与投资前景战略规划研究报告
- 2025-2030中国噻虫啉行业现状趋势及投资战略规划报告
- 2025-2030中国吹制羊毛行业消费动态与供需前景预测报告
- 2025日语二自考试题及答案
- 2025企业银行面试题目及答案
- 音乐竞赛试题及答案
- 语法竞赛试题及答案解析
- 皮带厂车间管理制度
- 2025年福建省中考英语试卷真题(含标准答案)
- 2026年高考作文备考之题目解析及范文:“如果……就不妙了”转变为“即使……也没什么”
- 广东省医学检验检查结果互认共享平台接口规范医疗机构
- S68绿色融资情况统计表填报说明
- CJ/T 151-2016薄壁不锈钢管
- 《高端时尚品牌解析》课件
- 委托肉类加工合同协议
- 以工代赈座谈会的发言稿
- 饲料公司采购部经理述职报告
- 四级育婴员模拟考试题及答案
评论
0/150
提交评论