队列
队列:一个有序列表,可以通过数组或者链表来实现。
队列存取数据的原则为:先进先出,添加数据从尾部添加,取出数据从头部取出
用数组模拟普通队列:
设计两个指针:front 指向队列的头部元素的前一个位置(-1)
rear指向队列的最后一个位置(-1)
队列为空的条件是:front == rear
队列为满的条件是:rear == array.length - 1
目前数组只能使用一次,没有达到复用的效果,将其改进为循环队列
用数组模拟循环队列:
设计两个指针:front 指向队列的第一个位置(0)
rear指向队列的最后一个位置的后一个位置(0):将rear改为指向最后一个位置的后一个位置,是为了空出一个位置作为约定(为了将判断队列满的条件和队列空的条件区分)
循环队列空的条件为:rear == front
循环队列满的条件为:(rear + 1)% maxSize == front
队列中元素的个数为: (rear + maxSize - front)% maxSize

浙公网安备 33010602011771号