java - 数据结构 队列queue

1. 定义

队列(Queue),是一种线性存储结构。
它有以下几个特点:

    1. 先进先出
    1. 头删尾插

队列通常包括的两种操作:入队列 和 出队列。

2. 简单实现


public class ArrayQueue {

    private int[] mArray;
    private int mCount;

    public ArrayQueue(int sz) {
        mArray = new int[sz];
        mCount = 0;
    }

    // 将val添加到队列的末尾
    public void add(int val) {
        mArray[mCount++] = val;
    }

    // 返回“队列开头元素”
    public int front() {
        return mArray[0];
    }

    // 返回“队首元素值”,并删除“队首元素”
    public int pop() {
        int ret = mArray[0];
        mCount--;
        for (int i=1; i<=mCount; i++)
            mArray[i-1] = mArray[i];
        return ret;
    }

    // 返回“栈”的大小
    public int size() {
        return mCount;
    }

    // 返回“栈”是否为空
    public boolean isEmpty() {
        return size()==0;
    }

    @Override
    public String toString() {
        return "ArrayQueue{" +
                "mCount=" + mCount +
                ", mArray=" + Arrays.toString(mArray) +
                '}';
    }
}

测试:

public static void main(String[] args) {

    ArrayQueue queue = new ArrayQueue(5);
    for (int i = 0; i < 5; i++) {
        queue.add(i);
    }

    int front = queue.front();
    System.out.println("front :" + front);
    int pop = queue.pop();
    System.out.println("pop :" + pop);
    System.out.println(queue.toString());
}

结果:

front :0
pop :0
ArrayQueue{mCount=4, mArray=[1, 2, 3, 4, 4]}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容