专业web网站设计最火的推广软件
/*** 思路:左边A栈,右边B栈* 1.A栈往B栈压入数据,要一次性把A栈数据一个一个都压入B栈* 2.如果B栈不为空,A栈绝对不能向B栈压入数据。*/import java.util.Stack;public class TwoStacksQueue {public Stack<Integer> stackPush;public Stack<Integer> stackPop;public TwoStacksQueue() {stackPush = new Stack<Integer>();stackPop = new Stack<Integer>();}//元素进栈public void add(int pushInt) {stackPush.push(pushInt);}public int poll() {if (stackPop.empty() && stackPush.empty()) {throw new RuntimeException("Queue is empty!");} else if (stackPop.empty()) {while (!stackPush.empty()) {stackPop.push(stackPush.pop());}}return stackPop.pop();}
//和poll效果一样
// public int peek() {
// if (stackPop.empty() && stackPush.empty()) {
// throw new RuntimeException("Queue is empty!");
// } else if (stackPop.empty()) {
// while (!stackPush.empty()) {
// stackPop.push(stackPush.pop());
// }
// }
// return stackPop.peek();
// }public static void main(String[] args) {TwoStacksQueue queue = new TwoStacksQueue();queue.add(2);queue.add(4);queue.add(7);queue.add(13);System.out.println(queue.poll());System.out.println(queue.poll());}
}
结果:
2
4