java - 数据结构 队列queue

2017-11-16  本文已影响57人  小菜_charry

1. 定义

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

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

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]}
上一篇 下一篇

猜你喜欢

热点阅读