定义
1.数组成环,新增头部和尾部
2.增加元素用尾插法,tail++;
删除元素head++;
但是有一个问题
tail或着head 从5变到0,该如何加呢?
加1取余
代码实现
public class circleQueue<T> {
private T[] element;
private int head;
private int tail;
public circleQueue(){
element=(T[])new Object[10];
}
//入队
public void push(T value){
if(tail+1%element.length==head){
//留一个元素判满
// element= Arrays.copyOf(element,element.length+element.length>>1);没办法扩容
try {
throw new Exception("Array out if index");
} catch (Exception e) {
e.printStackTrace();
}
}
element[tail]=value;//6
tail=++tail%element.length;
}
//出队
public void pop(){
element[head]=null;
head=++head%element.length;
}
//获取队头元素
public T peek() {
return element[head];
}
}
例题