2022年数据结构C语言版循环队列 3.pdf
《2022年数据结构C语言版循环队列 3.pdf》由会员分享,可在线阅读,更多相关《2022年数据结构C语言版循环队列 3.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; / 尾指针 ,若队列不空 ,指向队列尾元素的下一个位置,
2、相当于一个下标int rear; SqQueue;/ 空队列的标志是队头队尾指针都相同/ 构造一个空队列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).ba
3、se) free(*Q).base); (*Q).base=NULL; (*Q).front=(*Q).rear=0; /空队列的标志是队头队尾指针都相同,且为0 return 1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - / 将 Q 清为空队列int ClearQueue(SqQueue *Q) (*Q).front=(*Q).rear=0; /空队列的标志是队头队尾指针都相同,且为0 return 1; / 若队列
4、Q 为空队列 ,则返回 1,否则返回0 int QueueEmpty(SqQueue Q) if(Q.front=Q.rear) / 队列空的标志return 1; else return 0; / 返回 Q 的元素个数 ,即队列的长度int QueueLength(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
5、.base+Q.front) 相当于 Q.baseQ.front, 即 Q.base是数/ 组头,表示第Q.front 个元素*e=*(Q.base+Q.front); return 1; / 插入元素e 为 Q 的新的队尾元素int EnQueue(SqQueue *Q,QElemType e) if(*Q).rear+1)%MAXQSIZE=(*Q).front) / 队列满return 0; (*Q).base(*Q).rear=e; (*Q).rear=(*Q).rear+1)%MAXQSIZE; return 1; / 若队列不空 ,则删除 Q 的队头元素 ,用 e 返回其值 ,并返
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构C语言版循环队列 2022 数据结构 语言版 循环 队列
限制150内