队列大家见得很多了,形式也比较简单,就是一个特化的链表,它的enqueue、dequeue操作相当于链表的addLast、removeFirst操作。关于链表的实现,可以查看我的另一篇博文--"LinkedList--链表"。下面仅讨论一个稍微复杂点的情况--循环队列。
循环队列的就是用循环数组来实现队列,有一个问题需要解决:在普通的非循环队列中,rear == front 说明队列为空队列,然而在循环队列中,这个可能意味着队列为空,也可能意味着队列为满。通常采用两种策略来处理这个问题。
1. 设置一个标识位,以区别队列是空还是满。可以这样认为:初始化的时候令 front = rear = 0,flag = 0代表空。通过enqueue 入队操作使得 front = rear,认为到达满状态,flag = 1&#