2022年数据结构C语言版循环队列 2.pdf
《2022年数据结构C语言版循环队列 2.pdf》由会员分享,可在线阅读,更多相关《2022年数据结构C语言版循环队列 2.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/*数据结构 C 语言版循环队列P64 编译环境:Dev-C+4.9.9.2 日期:2011 年 2 月 12 日*/#include#include typedef int QElemType;/队列的顺序存储结构(可用于循环队列和非循环队列)#define MAXQSIZE 5/最大队列长度(对于循环队列,最大队列长度要减1)typedef struct QElemType*base;/初始化的动态分配存储空间,相当于一个数组头/头指针,若队列不空,指向队列头元素,相当于一个下标int front;/尾指针,若队列不空,指向队列尾元素的下一个位置,相当于一个下标int rear;SqQue
2、ue;/空队列的标志是队头队尾指针都相同/构造一个空队列Q int InitQueue(SqQueue*Q)/给队头队尾指针分配空间,并置空(*Q).base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType);/这里的 Q.base相当于一个数组头if(!(*Q).base)/存储分配失败exit(0);(*Q).front=(*Q).rear=0;/下标初始化为0 return 1;/销毁队列Q,Q 不再存在int DestroyQueue(SqQueue*Q)if(*Q).base)free(*Q).base);(*Q).base=NULL;(*Q
3、).front=(*Q).rear=0;/空队列的标志是队头队尾指针都相同,且为0 return 1;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -/将 Q 清为空队列int ClearQueue(SqQueue*Q)(*Q).front=(*Q).rear=0;/空队列的标志是队头队尾指针都相同,且为0 return 1;/若队列 Q 为空队列,则返回 1,否则返回0 int QueueEmpty(SqQueue Q)if(Q.front=Q.rear)/队列空的标志return 1;else return 0;/返回 Q 的元素个数,即队列的长度int Queue
4、Length(SqQueue Q)return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;/若队列不空,则用 e 返回 Q 的队头元素,并返回 1,否则返回0 int GetHead(SqQueue Q,QElemType*e)if(Q.front=Q.rear)/队列空return 0;/*(Q.base+Q.front)相当于 Q.baseQ.front,即 Q.base是数/组头,表示第Q.front 个元素*e=*(Q.base+Q.front);return 1;/插入元素e 为 Q 的新的队尾元素int EnQueue(SqQueue*Q,QElemTyp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构C语言版循环队列 2022 数据结构 语言版 循环 队列
限制150内