欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

队列

程序员文章站 2022-03-14 15:07:21
...

队列

队列知识

队列是一种先入先出的数据结构,和现实生活中的排队一样。
队尾入队,队头出队。

初始化

接口

public interface Queue<T> {
    //出队
    T deque();
    //入队
    boolean enque(T t);
    //大小
    int size();
}
public class ArrayQueue<T> implements Queue<T> {
    private int size,head,tail;
    private int capacity = 10;
    private T[] queue;
	
    public ArrayQueue(){
        queue = (T[]) new Object[capacity];
    }
    public ArrayQueue(int capacity){
        this.capacity = capacity;
        queue = (T[]) new Object[capacity];
    }
}

入队

@Override
    public boolean enque(T t) {
        if(size==capacity||t==null){
            return false;
        }
        queue[tail] = t;
        ++size;
        tail = (tail+1)%capacity;//循环队列防止假溢出
        return true;
    }

出队

@Override
    public T deque() {
        if(size==0)
        return null;
        T temp = queue[head];
        queue[head] = null;
        --size;
        head = (head+1)%capacity;//循环队列防止假溢出
        return temp;
    }
相关标签: 队列 FIFO