数据结构-实验4-循环队列的实现和运算

上传人:F****n 文档编号:99252887 上传时间:2019-09-18 格式:DOC 页数:5 大小:348KB
返回 下载 相关 举报
数据结构-实验4-循环队列的实现和运算_第1页
第1页 / 共5页
数据结构-实验4-循环队列的实现和运算_第2页
第2页 / 共5页
数据结构-实验4-循环队列的实现和运算_第3页
第3页 / 共5页
数据结构-实验4-循环队列的实现和运算_第4页
第4页 / 共5页
数据结构-实验4-循环队列的实现和运算_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据结构-实验4-循环队列的实现和运算》由会员分享,可在线阅读,更多相关《数据结构-实验4-循环队列的实现和运算(5页珍藏版)》请在金锄头文库上搜索。

1、 算法设计与分析 实验报告 - 5 -1、 实验目的(1) 掌握队列“先进先出”的特点;(2) 复习队列的入队、出对、插入、删除等基本操作;(3) 掌握循环队列的特点,以及循环队列的应用。2、 实验内容(1) 在顺序存储结构上实现输出受限制的双端循环队列的入队和出队(只允许队头输出)算法;(2) 设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作业优先原则,若一个新提交的作业的预计执行时间小于队头和队尾作业的平均时间,则插入在对头,否则插入在队尾;(3) 循环队列数据类型:#define MAXLEN 10typedef struct int dataMAXLEN;

2、Int front ,rear;csequeue;(4) 入队作业处理的预计时间可以用随机函数rand()产生,也可以从键盘输入。3、 实验要求(1) 用C(C+)语言完成算法设计和程序设计。(2) 上机调试通过实验程序。(3) 输入数据,检验程序运行结果。(4) 给出具体的算法分析,包括时间复杂度和空间复杂度等。(5) 撰写实验报告(把输入实验数据及运行结果用抓图的形式粘贴到实验报告上)。4、 实验步骤与源程序 实验步骤先从具体的问题中抽象出适当的数学模型,然后设计出相应的算法,其中,需要设计一个主函数来实现菜单的输出,设计另外五个函数来求分别实现初始化队列,入队,出队,显示,求队列长度,最

3、后,串接函数,并调试程序,在调试的时候,我先进行入队操作,输入9个数据之后,程序显示队满,不能入队,然后开始出队操作,输出9个数字之后,程序显示队空,再进行入队,显示队中的各个元素,并求队长,多次调试后,发现没有问题,得出实验结果,并截图。 源代码#include#define MAXLEN 10typedef struct int dataMAXLEN; / 定义数据的类型 int front,rear; / 定义队头、队尾指针csequeue;csequeue q; void IniQueue() / 初始化队列 q.front=q.rear=MAXLEN-1; void InQueue(

4、) / 入队函数 int x ; 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); void Outsequeue() / 出队函数 if (q.front=q.rear) printf (ntt 此队列为空! ); return ; / 队空不能出队 else q.front=(q.front+1) %

5、MAXLEN; printf(ntt 出队元素为:%dn,q.dataq.front); / 输出队头元素 return; void ShowQueue() / 显示函数 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);int length() int k; k=(q.rear-q.front+MAXLEN)% MAXLEN; return k;vo

6、id main() / 主函数 int i=1; int choice; IniQueue(); while (i) printf(ntt 循 环 队 列n);printf(ntt*);printf(ntt* 1-进 队 *);printf(ntt* 2-出 队 *);printf(ntt* 3-显 示 *); printf(ntt* 4-求 队 列 长 度 *);printf(ntt* 0-返 回 *);printf(ntt*);printf(nntt 请选择菜单号: );scanf(%d,&choice);switch(choice) case 1: InQueue(); break; c

7、ase 2: Outsequeue(); break; case 3: ShowQueue(); break; case 4: printf(ntt 队列长度为: %d n,length();break; case 0: i=0; break; 5、 测试数据与实验结果(可以抓图粘贴)(1)菜单显示:(2)入队:(3)队满(已入队9个元素):(4)出队:(5)队空(已出队9个元素):(6)显示队中的元素:(7)求队长:6、 结果分析与实验体会本次实验是参考了范例程序,经过自己的改写,从而实现要求。先做简单的输出,一步步的再做其它格式的设置。在实验的过程中,我加深了对队列各种操作的理解,因为队列

8、是“先进先出”的操作受限制的线性表,一般队列只允许在队尾进行插入操作,在队头进行删除操作,元素之间存在一对一的关系,本程序的设计过程也是对前面线性表知识的巩固。再者,用链式存储结构实现这个程序,实际上是设计一个带有头指针(front)和尾指针(rear)的单向链表,此单向链表没有头结点,头尾指针指的是同一个单向链表中的首尾结点,所以,从链队列的整体结构考虑,一般讲这两个指针封装在一个结构体中。队列是一种应用广泛的数据结构,凡具有其特点的需要排队处理的问题,都可以使用它来处理。考虑到公司仍有部分低层及高层人员的补充,因此在选择招聘渠道供应商的附加值时以配送普工现场招聘会和高端人才交流会为佳,另外根据供应商平台实力,若能给公司提供合适的猎头服务也应当纳入甄选范畴。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号