线性表篇:普通队列

一 队列

队列也是和栈类似的线性表,只不过栈遵循先进后出的原则,而列表则遵从先进先出的原则,普通队列一般有头部和尾部,数据从头部出,从尾部进,队列一般还有双端队列、并发队列、阻塞队列等,这里只说普通队列的实现。

二 自己实现普通队列

package queue;

//这里使用数组实现队列
public class Queue {
    private int[] queue;
    int maxSize; //最大容量
    int front ; //队列头
    int rear ; //队列尾部

    public Queue() {
    }

    public Queue(int maxSize) {
        this.maxSize = maxSize;
        queue = new int[maxSize];
        front = -1;
        rear = -1;
    }


    //判断队列是否满
    public boolean isFull(){
        return rear == maxSize-1;
    }

    //判断队列是否为空
    public boolean isEmpty(){
        return rear == front;
    }

    //添加数据到队列
    public void addQueue(int n){
        if(isFull()){
            System.out.println("队列满");
            return;
        }
        rear++;
        queue[rear] = n;
    }

    //获取队列的数据
    public int getQueue(){
        if (isEmpty()){
            throw new RuntimeException("队列空");
        }
        front++;
        return queue[front];
    }

    //显示队列的所有数据
    public void showQueue(){
        if (isEmpty()){
            System.out.println("队列为空,无数据");
        }
        for (int i :queue){
            System.out.println(i);
        }
    }
    
}

三 Queue

java中的队列接口是Queue,其中主要参见其子接口Deque

上一篇:多校省选模拟6


下一篇:Python-顺序队列的部分功能的实现