1、为什么要循环队列?
可以看看这篇文章:静态队列为什么必须是循环队列
2、循环队列要点
判空队列为空的条件:head == tail
判断队列已满的条件: (head + 1) % 数组长度 == tail
入队后维护tail: tail = (tail + 1) % 数组长度
出队后维护front: front = (front + 1) % 数组长度
注意:需要浪费一个空间来区分判空和盘满的条件
3、队列接口
public interface Queue<E> {
int getSize();
void enqueue(E e);
E dequeue();
E getFront();
boo