/** * @Author: subd * @Date: 2019/9/5 8:38 * 用栈来实现队列 */ public class StackImplementQueue { private Stack<Integer> stackA = new Stack<>(); private Stack<Integer> stackB = new Stack<>(); /** * 入栈操作 * * @param element 入队元素 */ public void enQueue(int element) { stackA.push(element); } /** * 出队操作 * * @return 出队元素 */ public Integer deQueue() { if (stackB.isEmpty()) { if (stackA.isEmpty()) { return null; } transfer(); } return stackB.pop(); } /** * 栈A元素转移到栈B */ private void transfer() { while (!stackA.isEmpty()) { stackB.push(stackA.pop()); } } public static void main(String[] args) { StackImplementQueue stackImplementQueue = new StackImplementQueue(); stackImplementQueue.enQueue(1); stackImplementQueue.enQueue(2); stackImplementQueue.enQueue(3); System.out.println(stackImplementQueue.deQueue()); System.out.println(stackImplementQueue.deQueue()); stackImplementQueue.enQueue(4); System.out.println(stackImplementQueue.deQueue()); System.out.println(stackImplementQueue.deQueue()); } }
用栈实现队列
最新推荐文章于 2020-09-24 17:21:15 发布