企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 说明 五个操作: * void enqueue(E) //入队 * E dequeue() //出队 * E getFront() //查看队首元素 * int getSize() //查看元素数量 * boolean isEmpty() //查看是否为空 ### 实现 #### 定义一个接口 ~~~ public interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e); E dequeue(); E getFront(); } ~~~ #### 实现接口,并完成队列的相关操作 ~~~ public class ArrayQueue<E> implements Queue<E> { private Array<E> array; public ArrayQueue(int capacity) { array = new Array<>(capacity); } public ArrayQueue() { array = new Array<>(); } @Override public int getSize() { return array.getSize(); } @Override public boolean isEmpty() { return array.isEmpty(); } public int getCapacity() { return array.getCapacity(); } @Override public void enqueue(E e) { array.addLast(e); } @Override public E dequeue() { return array.removeFirst(); } @Override public E getFront() { return array.getFirst(); } @Override public 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(); } } } } ~~~ ### 队列的复杂度分析 * void enqueue(E) //O(1)均摊 * E dequeue() //O(n) * E front() //O(1) * int getSize() //O(1) * boolean isEmpty() //O(1)