自主实验四循环队列的实现和运算.doc

自主实验四循环队列的实现和运算.doc

ID:57381372

大小:66.00 KB

页数:6页

时间:2020-08-14

自主实验四循环队列的实现和运算.doc_第1页
自主实验四循环队列的实现和运算.doc_第2页
自主实验四循环队列的实现和运算.doc_第3页
自主实验四循环队列的实现和运算.doc_第4页
自主实验四循环队列的实现和运算.doc_第5页
资源描述:

《自主实验四循环队列的实现和运算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子信息学院实验报告书课程名:数据结构题目:循环队列的实现和运算实验类别设计班级:BX1206学号:23姓名:张善干2013年11月4日1、实验题目(1)复习C(或C++)语言的基本描述方法;(2)掌握结构体及数组的用法;(3)提高运用C(C++)语言解决问题的能力;(4)通过实验程序,分析它们的时间复杂度。2、实验内容(1)在顺序存储结构上实现输出受限制的双端循环队列的入队和出队。(只允许对头输出)的算法。(2)设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作业原则,若一

2、个新提交的作业的预计时间小于队头和队尾作业的平均时间,则插入在队头,否则插入在队尾。(3)循环队列数据类型:#defineMAXLEN10typedefstruct{intdata[MAXLEN];intfront,rear;}csequeue;(4)入队作业处理的预计执行时间可以用随机函数rand()产生,也可以从键盘输入。3、实验要求(1)利用C(C++)语言完成程序设计。(2)上机调试通过实验程序。(3)输入数据,检验程序运行结果。(4)给出具体的算法分析,包括时间复杂度和空间复杂度。(5)撰写实

3、验报告。4、实验步骤与源程序⑴实验步骤首先是在自己的本子上,编写自己设计的程序。之后将它输入到电脑上,并调试。发现问题后,改写程序,使之达到要求。录入数据,进行检验。撰写实验报告。⑵源代码#include#defineMAXLEN10typedefstruct{intdata[MAXLEN];intfront,rear;}csequeue;voidInitQueue(csequeue&q){q.front=MAXLEN-1;q.rear=MAXLEN-1;}intIsEmpty(cse

4、queueq){if(q.rear==q.front)return1;elsereturn0;}intIsFull(csequeueq){if((q.rear+1)%MAXLEN==q.front)return1;elsereturn0;}intInrQueue(csequeue&q,intx){if(IsFull(q)){printf("队满!");return0;}else{q.rear=(q.rear+1)%MAXLEN;q.data[q.rear]=x;return1;}}voidInfQueu

5、e(csequeue&q,intx){inti;if(q.front==(q.rear+1)%MAXLEN){printf("tt队满,不能入队!");return;}q.data[q.front--]=x;printf("元素成功插入队首%d",q.data[q.front+1]);}intOutQueue(csequeue&q,int&x){if(IsEmpty(q)){printf("对空!");return0;}else{q.front=(q.front+1)%MAXLEN;x=

6、q.data[q.front];return1;}}voidShowQueue(csequeueq){intk=q.front;if(k==q.rear){printf("tt此队列为空!");return;}printf("tt此队列元素为:");do{k=(k+1)%MAXLEN;printf("%4d",q.data[k]);}while(k!=q.rear);printf("");}voidmain(){csequeueq;InitQueue(q);inta[8];int

7、i,k,ave;for(i=0;i<8;i++){scanf("%d",&a[i]);InrQueue(q,a[i]);}printf("当前队列为:");ShowQueue(q);ave=(q.data[(1+q.front)%MAXLEN]+q.data[(q.rear)])/2;scanf("%d",&k);if(k

8、2、结果分析与实验体会如截图那样,当输入的整数数据含有0的时候,程序会自动把0与后面的数据合并在一起了,至于为什么我还是没搞懂。可能是因为程序中使用了动态存储。我觉得本次实验的难度在于队列的插入,需要用到InfQueue(q,k)来输出队首插入,InrQueue(q,k);输出队尾的插入。

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

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

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