




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告-试验三 循环队列的基本操作及应用一、 问题描述:熟悉并掌握循环队列的相关操作,自己设计程序,实现循环队列的构造、清空、销毁及队列元素的插入和删除等相关操作。二、 数据结构设计: #define MAXQSIZE 10 /最大队列长度 struct SqQueue QElemType *base; /初始化动态分配存储空间 Int front; / 头指针,若队列不空,只想对列头元素 int rear; /尾指针,若队列不空,指向队列尾元素的 /下一个位置 ;三、功能设计: 程序中所涉及到的函数如下: Status InitQueue(SqQueue &Q) /构造一个空队列Q Status DestroyQueue(SqQueue &Q) /销毁队列Q,Q不再存在 Status ClearQueue(SqQueue &Q) /将Q清为空队列 Status QueueEmpty(SqQueue Q) /若队列Q为空队列,则 /返回TRUE,否则返回FALSE int QueueLength(SqQueue Q) /返回Q的元素个数,即队列长度Status GetHead(SqQueue Q,QElemType &e)/若队列不空,则用e返回Q的对 /头元素,并返回OK,否则返回ERROR Status EnQueue(SqQueue &Q,QElemType e)/插入元素e为Q的新的队尾元素Status DeQueue(SqQueue &Q,QElemType &e)/若队列不空,则删除Q的队头 /元素,用e返回其值,并返回 /OK,否则返回ERRORStatus QueueTraverse(SqQueue Q,void(*vi)(QElemType)/从队头到队尾依次 /对队列Q中每个元素调用函数 /vi()。一旦vi失败,则操作失败四、源程序:/ c1.h (程序名) #include #include #include / malloc()等 #include / INT_MAX等 #include / EOF(=Z或F6),NULL #include / atoi() #include / eof() #include / floor(),ceil(),abs() #include / exit() #include / cout,cin / 函数结果状态代码 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 / #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此 /行 typedef int Status; / Status是函数的类型,其值是函数结果状态代码,如OK等 typedef int Boolean; / Boolean是布尔类型,其值是TRUE或FALSE/ c3-3.h#define MAXQSIZE 10struct SqQueueQElemType *base;int front;int rear;#includec1.htypedef int QElemType;#includec3-3.hStatus InitQueue(SqQueue &Q) /构造一个空队列QQ.base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType);if(!Q.base)/储存分配失败exit(OVERFLOW);Q.front=Q.rear=0;return OK;Status DestroyQueue(SqQueue &Q)/销毁队列Q,Q不再存在if(Q.base)free(Q.base);Q.base=NULL;Q.front=Q.rear=0;return OK;Status ClearQueue(SqQueue &Q)/将Q清为空队列Q.front=Q.rear=0;return OK;Status QueueEmpty(SqQueue Q)/若队列Q为空队列,则返回TREU,否则返回FALSEif(Q.front=Q.rear)/队列空的标志return TRUE;elsereturn FALSE;int QueueLength(SqQueue Q)/Qreturn(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;Status GetHead(SqQueue Q,QElemType &e)/if(Q.front=Q.rear)/队列空return ERROR;e=*(Q.base+Q.front);return OK;Status EnQueue(SqQueue &Q,QElemType e)if(Q.rear+1)%MAXQSIZE=Q.front)/队列满return ERROR;Q.baseQ.rear=e;Q.rear=(Q.rear+1)%MAXQSIZE;returnOK;Status DeQueue(SqQueue &Q,QElemType &e)if(Q.front=Q.rear)/队列空return ERROR;e=Q.baseQ.front;Q.front=(Q.front+1)%MAXQSIZE;return OK;Status QueueTraverse(SqQueue Q,void(*vi)(QElemType)int i;i=Q.front;while(i!=Q.rear)vi(*(Q.base+i);i=(i+1)%MAXQSIZE;printf(n);return OK;void visit(QElemType i)coutti;void main()int i=0,a; QElemType d;SqQueue Q;InitQueue(Q);cout初始化队列后,队列空否?(1:空 0:否)QueueEmpty(Q)n;coutd;if(d=-1)break;i+;EnQueue(Q,d);while(iMAXQSIZE-1);cout队列长度为:QueueLength(Q)n;cout现在队列空否?(1:空 0:否)QueueEmpty(Q)n;for(i=1;i=QueueLength(Q);i+)DeQueue(d);cout删除的元素为:da;EnQueue(Q,a);cout现在队列中的元素为:n;QueueTraverse(Q,visit); coutn; GetHead(Q,a);cout现在对头元素为:an; ClearQueue(); cout清空队列后,对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年竹丝地板项目市场调查研究报告
- 2025年手压式榨汁机项目市场调查研究报告
- 2025年可调式简易剥线钳项目市场调查研究报告
- 基因检测企业ESG实践与创新战略研究报告
- 环保充气玩具屋企业制定与实施新质生产力战略研究报告
- 智能眼镜软件行业跨境出海战略研究报告
- 环保再生羊毛混纺针织毯行业深度调研及发展战略咨询报告
- 游戏级电竞耳机企业制定与实施新质生产力战略研究报告
- 地骨皮类饮片企业ESG实践与创新战略研究报告
- 玫瑰美容养生酒行业深度调研及发展战略咨询报告
- 《工艺标准培训》课件
- 2020-2024年五年高考数学真题分类汇编专题13 数列(真题10个考点精准练+模拟练)解析版
- 养老院九防制度
- 数据融合风控策略
- 2021年修订版《中华人民共和国安全生产法》考试题库
- 《广播电视与通信》课件
- 高温熔融金属企业安全知识培训
- 新能源汽车运用与维修专业人才培养方案
- 水利信息化水情监测系统单元工程质量验收评定表、检查记录
- 2024至2030年中国高密度聚乙烯树脂行业投资前景及策略咨询研究报告
- 小学数学《分数除法》50道计算题包含答案
评论
0/150
提交评论