题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:一个栈用来进行push,另一个栈进行pop.
当进行pop的时候,将第一个栈所有元素都push到第二个栈中.
进行pop的时候,保证第二个栈不为空时进行pop.
代码:
public class TwoStackToQuene {
Stack<Integer> stackOne = new Stack<Integer>();
Stack<Integer> stackTwo = new Stack<Integer>();
public void push(int node) {
stackOne.push(node);
}
public int pop() {
if (stackTwo.isEmpty()) {
while (!stackOne.isEmpty()) {
int node = stackOne.pop();
stackTwo.push(node);
}
}
return stackTwo.pop();
}
}