试验 --循环队列的基本操作及应用

试验 --循环队列的基本操作及应用

ID:48278009

大小:131.50 KB

页数:6页

时间:2019-11-28

试验 --循环队列的基本操作及应用_第1页
试验 --循环队列的基本操作及应用_第2页
试验 --循环队列的基本操作及应用_第3页
试验 --循环队列的基本操作及应用_第4页
试验 --循环队列的基本操作及应用_第5页
资源描述:

《试验 --循环队列的基本操作及应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构实验报告----试验三循环队列的基本操作及应用一、问题描述:熟悉并掌握循环队列的相关操作,自己设计程序,实现循环队列的构造、清空、销毁及队列元素的插入和删除等相关操作。二、数据结构设计:#defineMAXQSIZE10//最大队列长度structSqQueue{QElemType*base;//初始化动态分配存储空间Intfront;//头指针,若队列不空,只想对列头元素intrear;//尾指针,若队列不空,指向队列尾元素的//下一个位置};三、功能设计:程序中所涉及到的函数如下:StatusInitQueue(SqQueu

2、e&Q)//构造一个空队列QStatusDestroyQueue(SqQueue&Q)//销毁队列Q,Q不再存在StatusClearQueue(SqQueue&Q)//将Q清为空队列StatusQueueEmpty(SqQueueQ)//若队列Q为空队列,则//返回TRUE,否则返回FALSEintQueueLength(SqQueueQ)//返回Q的元素个数,即队列长度StatusGetHead(SqQueueQ,QElemType&e)//若队列不空,则用e返回Q的对//头元素,并返回OK,否则返回ERRORStatusEnQue

3、ue(SqQueue&Q,QElemTypee)//插入元素e为Q的新的队尾元素StatusDeQueue(SqQueue&Q,QElemType&e)//若队列不空,则删除Q的队头//元素,用e返回其值,并返回//OK,否则返回ERRORStatusQueueTraverse(SqQueueQ,void(*vi)(QElemType))//从队头到队尾依次//对队列Q中每个元素调用函数//vi()。一旦vi失败,则操作失败四、源程序://c1.h(程序名)#include#include#incl

4、ude//malloc()等#include//INT_MAX等#include//EOF(=^Z或F6),NULL6#include//atoi()#include//eof()#include//floor(),ceil(),abs()#include//exit()#include//cout,cin//函数结果状态代码#defineTRUE1#defineFALSE0#defin

5、eOK1#defineERROR0#defineINFEASIBLE-1//#defineOVERFLOW-2因为在math.h中已定义OVERFLOW的值为3,故去掉此//行typedefintStatus;//Status是函数的类型,其值是函数结果状态代码,如OK等typedefintBoolean;//Boolean是布尔类型,其值是TRUE或FALSE//c3-3.h#defineMAXQSIZE10structSqQueue{QElemType*base;intfront;intrear;};#include"c1.h"ty

6、pedefintQElemType;#include"c3-3.h"StatusInitQueue(SqQueue&Q){//构造一个空队列QQ.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));if(!Q.base)//储存分配失败exit(OVERFLOW);Q.front=Q.rear=0;returnOK;}StatusDestroyQueue(SqQueue&Q){//销毁队列Q,Q不再存在if(Q.base)free(Q.base);Q.base=NULL;Q.front

7、=Q.rear=0;returnOK;}6StatusClearQueue(SqQueue&Q){//将Q清为空队列Q.front=Q.rear=0;returnOK;}StatusQueueEmpty(SqQueueQ){//若队列Q为空队列,则返回TREU,否则返回FALSEif(Q.front==Q.rear)//队列空的标志returnTRUE;elsereturnFALSE;}intQueueLength(SqQueueQ){//Qreturn(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;}Status

8、GetHead(SqQueueQ,QElemType&e){//if(Q.front==Q.rear)//队列空returnERROR;e=*(Q.base+Q.front);returnOK;}Statu

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

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

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