队列
先进先出
package work.stackAndQueue.practise_1.myUntil;
public class MyQueue {
public int front;
public int rear;
public int[] elem;
private int usedSize = 0;
public static int allSize = 10;
public int getUsedSize() {
return this.usedSize;
}
public MyQueue(){
this(10);
}
public MyQueue(int size){
this.front = 0;
this.rear = 0;
this.elem = new int[size];
}
public boolean isFull(){
return (this.rear + 1) % allSize == this.front;
}
//入队
public void push(int val){
if(isFull()){
throw new UnsupportedOperationException("队满");
}
this.elem[this.rear] = val;
this.rear = (this.rear + 1) % allSize;
this.usedSize ++;
}
public boolean isEmpty(){
return this.front == this.rear;
}
//出队
public int pop(){
if(isEmpty()){
throw new UnsupportedOperationException("队空");
}
int fr = this.elem[this.front];
this.elem[this.front] = -1;
this.front = (this.front + 1) % allSize;
this.usedSize --;
return fr;
}
public void show(){
for(int i = this.front;i != this.rear;i = (i + 1) % allSize){
System.out.print(this.elem[i] + " ");
}
System.out.println();
}
}