循环队列的顺序存储结构及实现
2017-06-20 14:43
260 查看
/*循环队列的顺序存储结构及实现*/
//存储结构定义
const int QueueSize = 10; //定义数组最大长度
typedef int DataType;
typedef struct
{
DataType data[QueueSize]; //存放队列元素数组
int front,rear; //队头和对尾指针
}CirQueue;
//循环队列的初始化:将头指针和队尾指针同时指向数组某一位置,一般是数组的高端
void InitQueue(CirQueue &Q)
{
Q.front = Q.rear = QueueSize - 1;
}
//入队操作:将队尾指针rear在循环意义下加1,将待插入元素x插入到队尾
void EnQueue(CirQueue &Q,DataType)
{
if(Q.rear == Q.front)
{
printf("下溢");
exit(-1);
}
Q.front = (Q.front + 1)%QueueSize; //队头指针在循环意义下加1
return Q.data[Q.front]; //读取并返回出队前的队头元素
}
//取队头元素:与出队操作类似,区别是不改变队头指针
DataType GetFront(CirQueue &Q)
{
if(Q.rear == Q.front)
{
printf("下溢");
exit(-1);
}
i = (Q.front + 1)%QueueSize; //不改变队头指针
return Q.data[i];
}
//判空操作
int Empty(CirQueue &Q)
{
if(Q.rear == Q.front)
return 1; //队列为空返回1
else
return 0;
}
//存储结构定义
const int QueueSize = 10; //定义数组最大长度
typedef int DataType;
typedef struct
{
DataType data[QueueSize]; //存放队列元素数组
int front,rear; //队头和对尾指针
}CirQueue;
//循环队列的初始化:将头指针和队尾指针同时指向数组某一位置,一般是数组的高端
void InitQueue(CirQueue &Q)
{
Q.front = Q.rear = QueueSize - 1;
}
//入队操作:将队尾指针rear在循环意义下加1,将待插入元素x插入到队尾
void EnQueue(CirQueue &Q,DataType)
{
if(Q.rear == Q.front)
{
printf("下溢");
exit(-1);
}
Q.front = (Q.front + 1)%QueueSize; //队头指针在循环意义下加1
return Q.data[Q.front]; //读取并返回出队前的队头元素
}
//取队头元素:与出队操作类似,区别是不改变队头指针
DataType GetFront(CirQueue &Q)
{
if(Q.rear == Q.front)
{
printf("下溢");
exit(-1);
}
i = (Q.front + 1)%QueueSize; //不改变队头指针
return Q.data[i];
}
//判空操作
int Empty(CirQueue &Q)
{
if(Q.rear == Q.front)
return 1; //队列为空返回1
else
return 0;
}
相关文章推荐
- 队列的顺序存储结构——循环队列 图解和代码实现
- C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
- C++类模板 实现循环队列的顺序存储结构算法 《数据结构》(北京科海) 部分摘抄 自己编写实现
- C++编程练习(5)----“实现简单的循环队列的顺序存储结构“
- 队列的顺序存储结构——循环队列 图解和代码实现
- 队列的顺序存储结构——循环队列 图解和代码实现
- 循环队列Queue--使用顺序存储结构(数组)实现
- javascript中利用数组实现的循环队列代码
- 如何实现一个循环队列
- 循环队列的实现(Queue, C++版)
- javascript中利用数组实现的循环队列
- 循环队列操作实现
- 循环队列实现高速缓存的读写
- 如何实现一个循环队列
- 循环队列的一个简单实现
- Java实现循环队列
- 循环队列——队列的顺序表示和实现
- 循环队列的数组表示函数的实现
- 用VB实现循环队列算法收藏
- 循环队列的数组表示函数的实现