用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。
stack1 用来入队, stack2 用来出队
package com.sword_to_offer;
import java.util.Stack;
public class TwoStackImplQueue {
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
public void push(int node) {
while (!stack2.isEmpty())
stack1.push(stack2.pop());
stack1.push(node);
}
public int pop() {
while (!stack1.isEmpty())
stack2.push(stack1.pop());
return stack2.pop();
}
public static void main(String[] args) {
TwoStackImplQueue queue = new TwoStackImplQueue();
queue.push(1);
queue.push(6);
queue.push(3);
System.out.println(queue.pop());
queue.push(2);
System.out.println(queue.pop());
queue.push(9);
System.out.println(queue.pop());
queue.push(7);
System.out.println(queue.pop());
System.out.println(queue.pop());
System.out.println(queue.pop());
}
}
数据结构与算法分析(Java 语言描述)(35)—— 使用两个栈实现一个队列
http://blog.csdn.net/heatdeath/article/details/78773501
数据结构与算法分析(Java 语言描述)(36)—— 使用两个队列实现一个栈
http://blog.csdn.net/heatdeath/article/details/78773883