欢迎来到天天文库
浏览记录
ID:48278009
大小:131.50 KB
页数:6页
时间:2019-11-28
《试验 --循环队列的基本操作及应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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
此文档下载收益归作者所有