数据结构:循环队列(一)设置一个标志域后的入队列和出队列的算法
来源:互联网 发布:linux安装rdesktop 编辑:程序博客网 时间:2024/06/07 07:04
如果希望循环队列中的元素都能得到利用,则需设置一个标志域tag,并以tag的值为0或1来区分,尾指针和头指针值相同时的队列状态是"空"还是"满"。试编写与此结构相应的入队列和出队列的算法。
本题的循环队列CTagQueue的类型定义如下:
本题的循环队列CTagQueue的类型定义如下:
typedef char QElemType;typedef struct { QElemType elem[MAXQSIZE]; int tag; int front; int rear;} CTagQueue;
实现函数如下:
Status EnCQueue(CTagQueue &Q, QElemType x){ if(Q.tag)return ERROR; else{ Q.elem[Q.rear] = x;//将e赋值给队尾 Q.rear = (Q.rear + 1) % MAXQSIZE;//rear指针向后移一个位置,若到最后则转到数组头部 if(Q.rear == Q.front){ Q.tag = 1; //队列满 } return OK; }}Status DeCQueue(CTagQueue &Q, QElemType &x){ if(Q.front == Q.rear && Q.tag == 0){ return ERROR; } else{ x = Q.elem[Q.front];//将队头元素赋值给e Q.front = (Q.front + 1) % MAXQSIZE;//front指针向后移一个位置,若到最后则转到数组头部 if(Q.front == Q.rear){ Q.tag = 0; //队列空 } return OK; }}
0 0
- 数据结构:循环队列(一)设置一个标志域后的入队列和出队列的算法
- 带头结点的循环链表表示队列的初始化、入队列和出队列的算法
- 带头结点的循环链表表示队列的初始化、入队列和出队列的算法
- (六)循环顺序队列的初始化、入队列、出队列
- 用两个堆栈实现一个列表的功能(主要是入队列和出队列)
- 假设以带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点(注意不设头指针) 试编写相应的队列初始化,入队列和出队列的算法
- 队列的创建 入队出队 Java数据结构与算法
- (七)链式队列的初始化、入队列和出队列
- 数据结构(十) 链队列的基本操作 ----入队列,出队列,判断队列是否为空
- 【数据结构】队列的出队和入队操作
- 队列的入队和出队操作
- 队列的入队和出队
- 链队列、循环队列的实现(初始化、出队、入队、取队头元素、判空)
- 循环队列的操作(初始化,入队,出对,销毁,输出)
- 循环队列的初始化、入队、出队等基本操作
- 链队列的初始化、入队、出队及打印(数据结构)
- 数据结构 队列入队,出队编程的例子
- 软件开发实践中的入队列和出队列操作的C代码示例
- .NET Framework SDK 与 .NET Framework 的区别
- Hex和Bin文件格式区别
- Convert Sorted List to Binary Search Tree
- 矩阵专题:斐波那契数列
- 夜深了
- 数据结构:循环队列(一)设置一个标志域后的入队列和出队列的算法
- 最短路(Dijstra+矩阵转置) Silver Cow Party
- Merge Two Sorted Lists
- 【fun】贪吃蛇源码
- 【水枚举】#12 A. Super Agent
- Android自学笔记-15-Activity的生命周期
- 使用光耦隔离PWM信号的经历
- Android项目打包成APK文件
- 一道SQL题考你数据库的使用能力