数组模拟队列
/**
* 队列
*
* @author Hang W
*/
@SuppressWarnings("all")
public class MyQueue {
private long[] queue = {};
private int element;
private volatile int top;
private volatile int end;
public MyQueue() {
this.queue = new long[5];
this.element = 0;
this.top = 0;
this.end = -1;
}
public MyQueue(int maxsize) {
this.queue = new long[maxsize];
this.element = 0;
this.top = 0;
this.end = -1;
}
public void push(int value) {
if(end >= queue.length - 1)
end = -1;
element++;
queue[++end] = value;
}
public long pop() {
if(top >= queue.length)
top = 0;
element--;
return queue[top++];
}
public long peek() {
if(top >= queue.length)
top = 0;
return queue[top];
}
public boolean isEmpty() {
return 0 == element;
}
public boolean isFull() {
return queue.length == element;
}
public static void main(String[] args) {
MyQueue queue = new MyQueue();
queue.push(5);
queue.push(4);
queue.push(3);
queue.push(2);
queue.push(1);
System.out.println("队列是否满了:" + queue.isFull());
System.out.println("队列第一个元素:" + queue.peek());
while(!queue.isEmpty()) {
System.out.print("出队列:" + queue.pop() + " ");
}
System.out.println();
System.out.println("队列是否为空:" + queue.isEmpty());
System.out.println();
System.out.println("队列是否满了:" + queue.isFull());
queue.push(9);
System.out.println("队列第一个元素:" + queue.peek());
}
}
结果