- 先进先出,有一个front引用第一个节点, 有一个引用rear指向下一个可以放数据的位置
- 自动浪费一个空间。
- 如果(rear+1)%数组长度 = front 的话,就表示此队列放满了
class Queue{
private int front; //对头
private int rear;// 队尾
private int[] elem;
private int size; //当前使用空间
public Queue(int size) {
this.front=0;
this.rear=0;
elem=new int[size];
}
public Queue() {
this(10);
}
//是否满
public boolean isFull() {
return (rear+1)%elem.length==front;
}
//入队;
public void push(int val) {
if (isFull()) {
return;
}
elem[rear]=val;
rear=(this.rear+1)%elem.length;
}
//是否空
public boolean isEmpty() {
return rear==front;
}
//出队
public void pop() {
if (isEmpty()) {
return;
}
int num=elem[front];
elem[front]=-1;
front=(front+1)%elem.length;
size--;
}
//打印函数
public void show() {
for (int i=front ; i !=rear ; i=(i+1)%elem.length) {
System.out.println(elem[i]);
}
}
}