如何在 Java 中使用 Stack 实现队列?\
javaobject oriented programmingprogramming更新于 2024/5/10 23:40:00
Queue 类扩展了 Collection 接口,它支持使用先进先出 (FIFO) 的插入和删除操作。Stack 是 Vector 类的子类,它表示后进先出 (LIFO) 对象堆栈。添加到堆栈顶部的最后一个元素 (In) 可以是第一个从堆栈中删除的元素 (Out)。我们还可以在以下程序中使用 Stack 实现队列。
示例
import java.util.*; public class QueueUsingStackTest { private Stack stack1 = new Stack<>(); private Stack stack2 = new Stack<>(); public void enqueue(int element) { stack1.push(element); System.out.println(element + " inserted"); } public void dequeue() { if(stack2.isEmpty()) { while (!stack1.isEmpty()) { stack2.push(stack1.pop()); } } System.out.println(stack2.pop() + " removed"); } public static void main(String args[]) { QueueUsingStackTest test = new QueueUsingStackTest(); test.enqueue(10); test.enqueue(50); test.enqueue(100); test.dequeue(); } }
输出
10 inserted 50 inserted 100 inserted 10 removed