基本概念
- 队列是一种先进先出的数据结构 First In First Out(FIFO)
队列的实现
Queue
- void enqueue(E) 入队 O(1)
- E dequeue() 出队 O(n) (出队后,后买的元素都要向前挪)
- E getFront() 获取队首元素 O(1)
- int getSize() O(1)
boolean isEmpty() O(1)
public class ArrayQueue<E> implements Queue<E> {private Array<E> array;public ArrayQueue(int capacity) {array = new Array<>(capacity);}public ArrayQueue() {array = new Array<>();}@Overridepublic int getSize() {return array.getSize();}@Overridepublic boolean isEmpty() {return array.isEmpty();}@Overridepublic void enqueue(E e) {array.addLast(e);}@Overridepublic E dequeue() {return array.removeFirst();}@Overridepublic E getFront() {return array.getFirst();}@Overridepublic String toString() {StringBuilder res = new StringBuilder();res.append("Queue: ");res.append("front: [");for (int i = 0; i < array.getSize(); i ++) {res.append(array.get(i));if (i != array.getSize() - 1) {res.append(", ");}}res.append("] tail");return res.toString();}public static void main(String[] args) {ArrayQueue<Integer> queue = new ArrayQueue<>();for (int i = 0; i < 10; i++) {queue.enqueue(i);System.out.println(queue);if (i % 3 == 2) {queue.dequeue();System.out.println(queue);}}}}
