收藏 分享(赏)

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

上传人:fmgc7290 文档编号:9499764 上传时间:2019-08-10 格式:DOC 页数:6 大小:81KB
下载 相关 举报
自主实验四循环队列的实现和运算.doc_第1页
第1页 / 共6页
自主实验四循环队列的实现和运算.doc_第2页
第2页 / 共6页
自主实验四循环队列的实现和运算.doc_第3页
第3页 / 共6页
自主实验四循环队列的实现和运算.doc_第4页
第4页 / 共6页
自主实验四循环队列的实现和运算.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

2、作业原则,若一个新提交的作业的预计时间小于队头和队尾作业的平均时间,则插入在队头,否则插入在队尾。(3) 循环队列数据类型:#define MAXLEN 10typedef structint dataMAXLEN;int front,rear;csequeue;(4) 入队作业处理的预计执行时间可以用随机函数 rand()产生,也可以从键盘输入。3、 实验要求(1) 利用 C(C+)语言完成程序设计。(2) 上机调试通过实验程序。(3) 输入数据,检验程序运行结果。(4) 给出具体的算法分析,包括时间复杂度和空间复杂度。(5) 撰写实验报告。4、实验步骤与源程序 实验步骤首先是在自己的本子上

3、,编写自己设计的程序。之后将它输入到电脑上,并调试。算法设计与分析 实验报告 - 2 -发现问题后,改写程序,使之达到要求。录入数据,进行检验。撰写实验报告。 源代码#include#define MAXLEN 10typedef structint dataMAXLEN;int front,rear;csequeue;void InitQueue(csequeue q.rear=MAXLEN-1;int IsEmpty(csequeue q)if(q.rear=q.front)return 1;elsereturn 0;int IsFull(csequeue q)if(q.rear+1)%M

4、AXLEN=q.front)return 1;else算法设计与分析 实验报告 - 3 -return 0;int InrQueue(csequeue return 0;else q.rear=(q.rear+1)%MAXLEN;q.dataq.rear=x;return 1;void InfQueue(csequeue if (q.front=(q.rear+1) % MAXLEN ) printf(“ntt 队满,不能入队! n“); return; q.dataq.front-=x;printf(“元素成功插入队首 %dn“,q.dataq.front+1);int OutQueue(c

5、sequeue return 0;else q.front=(q.front+1)%MAXLEN;算法设计与分析 实验报告 - 4 -x=q.dataq.front;return 1;void ShowQueue(csequeue q)int k=q.front;if (k=q.rear) printf(“ntt 此队列为空! n“); return;printf(“ntt 此队列元素为:“);do k=(k+1)%MAXLEN;printf(“%4d“,q.datak); while(k!=q.rear);printf(“n“);void main()csequeue q;InitQueue

6、(q);int a8;int i,k,ave;for(i=0;i8;i+) scanf(“%d“,InrQueue(q,ai);printf(“当前队列为: n“);ShowQueue(q);ave=(q.data(1+q.front)%MAXLEN+q.data(q.rear)/2;scanf(“%d“,if(kave)算法设计与分析 实验报告 - 5 -InfQueue(q,k);elseInrQueue(q,k);printf(“现在的队列是: n“);ShowQueue(q);5、测试数据与实验结果(可以抓图粘贴)6、结果分析与实验体会如截图那样,当输入的整数数据含有 0 的时候,程序会自动把 0 与后面的数据合并在一起了,至于为什么我还是没搞懂。可能是因为程序中使用了动态存储。我觉得本次实验的难度在于队列的插入,需要用到 InfQueue(q,k)来输出队首插入,InrQueue(q,k);输出队尾的插入。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报