Java实现一个Queue(环形数组)

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出列

正确

你可能感兴趣的:(数据结构与算法,java)