欢迎来到天天文库
浏览记录
ID:48927100
大小:146.50 KB
页数:6页
时间:2020-02-25
《试验 --循环队列的基本操作及应用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.数据结构实验报告----试验三循环队列的基本操作及应用一、问题描述:熟悉并掌握循环队列的相关操作,自己设计程序,实现循环队列的构造、清空、销毁及队列元素的插入和删除等相关操作。二、数据结构设计:#defineMAXQSIZE10//最大队列长度structSqQueue{QElemType*base;//初始化动态分配存储空间Intfront;//头指针,若队列不空,只想对列头元素intrear;//尾指针,若队列不空,指向队列尾元素的//下一个位置};三、功能设计:程序中所涉及到的函数如下:St
2、atusInitQueue(SqQueue&Q)//构造一个空队列QStatusDestroyQueue(SqQueue&Q)//销毁队列Q,Q不再存在StatusClearQueue(SqQueue&Q)//将Q清为空队列StatusQueueEmpty(SqQueueQ)//若队列Q为空队列,则//返回TRUE,否则返回FALSEintQueueLength(SqQueueQ)//返回Q的元素个数,即队列长度StatusGetHead(SqQueueQ,QElemType&e)//若队列不空,则
3、用e返回Q的对//头元素,并返回OK,否则返回ERRORStatusEnQueue(SqQueue&Q,QElemTypee)//插入元素e为Q的新的队尾元素StatusDeQueue(SqQueue&Q,QElemType&e)//若队列不空,则删除Q的队头//元素,用e返回其值,并返回//OK,否则返回ERRORStatusQueueTraverse(SqQueueQ,void(*vi)(QElemType))//从队头到队尾依次//对队列Q中每个元素调用函数//vi()。一旦vi失败,则操作失
4、败四、源程序://c1.h(程序名)#include#include#include//malloc()等#include//INT_MAX等#include//EOF(=^Z或F6),NULL范文.#include//atoi()#include//eof()#include//floor(),ceil(),abs()#include
5、//exit()#include//cout,cin//函数结果状态代码#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1//#defineOVERFLOW-2因为在math.h中已定义OVERFLOW的值为3,故去掉此//行typedefintStatus;//Status是函数的类型,其值是函数结果状态代码,如OK等typedefintBoolean;//Boolean是布尔类型,其值是T
6、RUE或FALSE//c3-3.h#defineMAXQSIZE10structSqQueue{QElemType*base;intfront;intrear;};#include"c1.h"typedefintQElemType;#include"c3-3.h"StatusInitQueue(SqQueue&Q){//构造一个空队列QQ.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));if(!Q.base)//储存分配失败exit(OVERF
7、LOW);Q.front=Q.rear=0;returnOK;}StatusDestroyQueue(SqQueue&Q){//销毁队列Q,Q不再存在if(Q.base)free(Q.base);Q.base=NULL;Q.front=Q.rear=0;returnOK;}范文.StatusClearQueue(SqQueue&Q){//将Q清为空队列Q.front=Q.rear=0;returnOK;}StatusQueueEmpty(SqQueueQ){//若队列Q为空队列,则返回TREU,否则
8、返回FALSEif(Q.front==Q.rear)//队列空的标志returnTRUE;elsereturnFALSE;}intQueueLength(SqQueueQ){//Qreturn(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;}StatusGetHead(SqQueueQ,QElemType&e){//if(Q.front==Q.rear)//队列空returnERROR;e=*(Q.base+Q.front);returnOK;}
此文档下载收益归作者所有