一个栈用来入队列操作
一个栈用来出队列操作,每次出队列的时候把栈1的内容去除压到栈2,这样再返回栈2的pop方法,就是一个出队列的操作
package leecode.programing;
import java.util.Stack;
public class StackToQueue {
//stack1用来入队列
Stack<Integer> stack1 = new Stack<Integer>();
//stack2用来出队列
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.add(node);
}
public int pop() {
//处理栈为空的时候
if(stack1.isEmpty()&&stack2.isEmpty()){
return -1;
}
//栈2为空,把栈1的内容取出压到栈2,
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
}
//first就是要出队列的值,此时再把剩下的数据按照原来的顺序压入栈1
int first=stack2.pop();
//此时再把剩下的数据按照原来的顺序压入栈1
while (!stack2.isEmpty()) {
stack1.push(stack2.pop());
}
return first;
}
}