二、队列的顺序存储(循环队列)
顺序存储的队列若直接采用普通数组实现,会出现“假溢出”问题,因此引入循环队列优化空间利用。
1. 循环队列的核心原理
循环队列通过取模运算让队列首尾相连,解决普通顺序队列的空间浪费问题,其核心指针规则如下:
- 初始化时,
front(队头指针)和rear(队尾指针)均指向0 - 队满条件:
(Q.rear + 1) % MaxSize == Q.front(预留一个空位置避免队空和队满条件混淆) - 队空条件:
Q.rear == Q.front - 入队时队尾指针后移:
Q.rear = (Q.rear + 1) % MaxSize - 出队时队头指针后移:
Q.front = (Q.front + 1) % MaxSize
2. 循环队列完整实现代码
Output:
Click "Run" to see output...
3. 运行结果
队头元素:10
出队元素:10
当前front:1,当前rear:3