循环队列
队列数组实现就是循环队列
关键:头或者尾达到数组最后一个元素,接下来在进行入队或者出队,就让这样的标记来到数组开头。
队列为空:head和tail相等,队列为空
队列满了:head和tail相等(判断size是否为空,不为空表示队列满了)
数组下标循环技巧
- 下标最后再往后(offset 小于 array.length): index = (index + offset) % array.length
- 下标最前再往前(offset 小于 array.length): index = (index + array.length - offset) % array.length
实现:
public class MyQueue2 {
private int [] data=new int[100];
private int head=0;//队首元素下标
private int tail=0;//队尾元素下标
private int size=0;
//1.入队列,插入成功返回true,失败返回false
// 如果队列满了就会插入失败
public boolean