用两个栈实现队列
赶紧来复习一下算法,明天面试手撕算法的话,感觉要凉凉了
这就是剑指offer那道题,没错
用两个栈实现队列,在这之前你也一定了解过什么是队列吧?我就不再说队列了
可以用一个入栈作为入队列栈,用另外一个栈作为出队列栈
public class TwoStackGenerateQueue {
static Stack<Integer> instack=new Stack<>();
static Stack<Integer> outStack=new Stack<>();
public static void push(int node){
instack.push(node);
}
public static int pop(){
if(outStack.isEmpty()){
while(!instack.isEmpty()){
outStack.push(instack.pop());
}
}
if(outStack.isEmpty()){
return -1;
}
return outStack.pop().intValue();
}
public static void main(String[] args) {
push(1);
push(2);
push(3);
System.out.println(pop());
System.out.println(pop());
System.out.println(pop());
}
}