循环队列的实现与运算 数据结构

循环队列的实现与运算 数据结构

ID:11496812

大小:71.50 KB

页数:6页

时间:2018-07-12

循环队列的实现与运算 数据结构_第1页
循环队列的实现与运算 数据结构_第2页
循环队列的实现与运算 数据结构_第3页
循环队列的实现与运算 数据结构_第4页
循环队列的实现与运算 数据结构_第5页
资源描述:

《循环队列的实现与运算 数据结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、电子信息学院实验报告书课程名:数据结构题目:循环队列的实现和运算实验类别设计班级:学号:姓名:2011年10月17日《算法设计与分析》实验报告-5-1、实验题目(1)掌握队列“先进先出”的特点;(2)复习队列的入队、出队、插入、删除等基本运算。(3)掌握循环队列的特点,以及循环队列的应用。2、实验内容(1)在顺序存储结构上实现输出受限制的双端循环队列的入队和出队(只允许队头输出)算法。(2)设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作业优先原则,若一个新提交的作业的预计执行时间小于对头和队尾作业的平均时间,则插入在队头,否则插入在队尾。(3)循环队列数据类型:

2、#defineMAXLEN10typedefstruct{intdata[MAXLEN];intfront,rear;}csequeue;(4)入队作业处理的预计执行时间可以用随机数函数rand()产生,也可以从键盘输入。3、实验要求(1)利用C(C++)语言完成算法设计和程序设计。(2)上机调试通过实验程序。(3)输入数据,检验程序运行结果。(4)给出具体的算法分析,包括时间复杂度和空间复杂度等。(5)撰写实验报告。4、实验步骤与源程序⑴实验步骤首定义MAXLEN=10,然后初始化队列,再定义数据类型、头、尾指针。下面定义五个函数,分别是入队函数、出队函数、显示函数和长度计算函数。在入队时要

3、判断是否队满,队满不能入队。出队要判断队是否为空,队空不能出队。判断队列长度的函数,用队尾指针与队首指针之差来计算。最后的主函数是一个队列菜单和相应的对函数的调用,菜单界面主要通过printf()函数来实现,下面一一对应有switch()语句来实现。⑵源代码#include#defineMAXLEN10typedefstruct{intdata[MAXLEN];//定义数据的类型intfront,rear;//定义队头、队尾指针}csequeue;《算法设计与分析》实验报告-5-csequeueq;voidIniQueue()//初始化队列{q.front=q.rear=MA

4、XLEN-1;}voidInQueue()//入队函数{intx;printf("tt输入一个入队的整数数据:");scanf("%d",&x);if(q.front==(q.rear+1)%MAXLEN){printf("tt队满,不能入队!");return;}q.rear=(q.rear+1)%MAXLEN;q.data[q.rear]=x;printf("tt入队成功!");}voidOutsequeue()//出队函数{if(q.front==q.rear){printf("tt此队列为空!");return;}//队空不能出队else{q.f

5、ront=(q.front+1)%MAXLEN;printf("tt出队元素为:%d",q.data[q.front]);//输出队头元素return;}}voidShowQueue()//显示函数{intk=q.front;if(k==q.rear){printf("tt此队列为空!");return;}printf("tt此队列元素为:");do{k=(k+1)%MAXLEN;printf("%4d",q.data[k]);《算法设计与分析》实验报告-5-}while(k!=q.rear);printf("");}intlength(){intk;k=(

6、q.rear-q.front+MAXLEN)%MAXLEN;returnk;}voidmain()//主函数{inti=1;intchoice;IniQueue();while(i){printf("tt循环队列");printf("tt***************************************************");printf("tt***1----------显示***");printf("tt***2----------进队***");printf("tt***3----------出队***");printf("

7、ntt***4----------求队列长度***");printf("tt***0----------返回***");printf("tt***************************************************");printf("tt请选择菜单号:");scanf("%d",&choice);switch(choice){case1

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

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

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