数组模拟队列

代码实现

class Main{
    public static void main(String[] args) {
        ArraySimulationQueue arraySimulationQueue = new ArraySimulationQueue(5);
        arraySimulationQueue.addQueue(5);
        arraySimulationQueue.addQueue(6);
        arraySimulationQueue.addQueue(7);
        arraySimulationQueue.addQueue(8);
        System.out.println(arraySimulationQueue.TakeOut());
        System.out.println(arraySimulationQueue.TakeOut());
        System.out.println(arraySimulationQueue.TakeOut());
        System.out.println(arraySimulationQueue.TakeOut());
    }
}

public class ArraySimulationQueue {
    private int head;
    private int tail;
    private int maxSize;
    private int[] array;

    public ArraySimulationQueue(int maxSize) {
        this.head = -1;
        this.tail = -1;
        this.maxSize = maxSize;
        array = new int[maxSize];
    }

    public boolean IsNull() {
        return tail == head;
    }

    public boolean IsFull() {
        return tail == maxSize - 1;
    }

    //添加数据
    public void addQueue(int num) {
        if (IsFull()) {
            System.out.println("队列已满");
            return;
        }
        tail++;
        array[tail] = num;
    }

    //出队列
    public Integer TakeOut() {
        if (IsNull()) {
            System.out.println("队列为空");
         return null ;
        }
        head++;
        return array[head];
    }

    //获取头结点
    public Integer getHead() {
        if (IsNull()) {
            System.out.println("队列为空");
            return null;
        }
        return array[head + 1];
    }

    public void show() {
        if (IsNull()) return;
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

}

 

posted @ 2021-09-09 00:16  袁志航  阅读(65)  评论(0)    收藏  举报