数据结构与算法(C++)– 队列(Queue)
1、队列
- 先进先出(First in, First out)
- enqueue 入队,dequeue 出队
- front 队头,rear / back 队尾
2、队列实现(数组)
入队和出队:
// 创建空的队列
int q[10];
// 入队:enqueue(1)
q[back++] = 1;
// 出队: dequeue()
return q[front++];
判断队列是否为空:
// 法1
size = back-front
0 == Size
// 法2
back == front
3、循环队列
// 数组的大小为 MaxLen
// 入队
++back;
If (back == MaxLen)
back = 0;
// 计算队列大小
size = (back+MaxLen-front) % MaxLen
// 判断是否为满
size == MaxLen-1
// 判断是否为空
size == 0