算法:用两个栈实现队列
用两个栈实现队列
用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
分析
两个栈一个用来存放入栈的数据, 一个用来存放出栈的数据
- 当入队时:直接入栈inStack即可
- 当出队时:如果outStack为空, 则现将inStack里面的数据全部倒入outStack中, 然后再出栈;
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import java.util.Stack;
public class Solution { Stack<Integer> inStack = new Stack<>(); Stack<Integer> outStack = new Stack<>();
public void push(int node) { inStack.push(node); }
public int pop() { if(inStack.empty()&&outStack.empty()){ throw new RuntimeException("Queue is empty!"); } if(outStack.empty()){ while(!inStack.empty()){ outStack.push(inStack.pop()); } } return outStack.pop(); } }
|