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]}
网友评论