Queue队列应该满足先入先出的原则。这里使用数组实现。
public class MyQueue {
int front=1;
int rear=0;
int MaxSize;
int[] queue;
public MyQueue(int MaxSize){
this.queue=new int[MaxSize];
this.MaxSize=MaxSize;
}
public boolean isEmpty(){
if(rear+1==front){
System.out.print("queue为空");
return true;
}else {
System.out.print("queue不为空");
return false;
}
}
public boolean addQueue(int n){
if((front)%MaxSize!=rear) {
queue[front%MaxSize] = n;
front++;
return true;
}else{
System.out.print("队列满");
return false;
}
}
public boolean deleteQueue(){
if(rear+1<front){
rear++;
System.out.print(queue[rear%MaxSize]+"出列");
return true;
}else {
System.out.println("删除失败");
return false;
}
}
}
这里的addQueue是入队。deleteQueue是出对。
测试代码
public static void main(String[] args) {
MyQueue queue=new MyQueue(3);
queue.addQueue(1);
queue.addQueue(2);
queue.deleteQueue();
queue.addQueue(3);
queue.deleteQueue();
}
结果:1出列2出列
正确