问题描述: 用两个栈实现一个队列,完成队列的Push和Pop操作 问题分析: 用两个栈实现一个队列 代码如下: public class Demo1 { Stack<Integer>stack1 = new Stack<Integer>(); Stack<Integer>stack2 = new Stack<Integer>(); public void push(int node) { stack1.push(node); } public int pop() throws Exception{ if(stack1.isEmpty() && stack2.isEmpty()) throw new Exception("Queue is empty"); //这是更新了抛出异常所打印的话语,若不写这条if语句,队列为空 //即打印 //java.util.EmptyStackException if(stack1.isEmpty()) return stack2.pop(); while(!stack1.isEmpty()) stack2.push(stack1.pop()); return stack2.pop(); } public static void main(String[] args) { // TODO Auto-generated method stub Demo1 a = new Demo1(); a.push(1); a.push(2); a.push(3); try { System.out.println(a.pop()); System.out.println(a.pop()); System.out.println(a.pop()); } catch (Exception e) { e.printStackTrace(); } } }