描述
用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。
例子
Input:
Output:
思路
一个栈负责入队,另一个栈负责出队。
- 队列push操作,直接进第一个栈
- 队列pop操作,判断第二个栈是否为空,若空将第一个栈所有元素进栈到第二个栈中,若不为空,则第二个栈直接出栈
代码
public class Question007 {
private static Stack<Integer> stack1 = new Stack<>();
private static Stack<Integer> stack2 = new Stack<>();
public void push(Integer item){
stack1.push(item);
}
public Integer pop() throws Exception {
if(stack2.isEmpty()) {
while (!stack1.isEmpty()){
stack2.push(stack1.peek());
}
}
if(stack2.isEmpty()) {
throw new Exception("队列为空");
}
return stack2.peek();
}
}
本文介绍了一种使用两个栈来实现队列的方法,详细解释了队列的Push和Pop操作如何通过栈来完成。当进行Push操作时,元素直接进入第一个栈;而Pop操作则需检查第二个栈是否为空,若空则将第一个栈的所有元素移至第二个栈,最后从第二个栈中弹出元素。

1319

被折叠的 条评论
为什么被折叠?



