题目
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解题思路
两个栈,一个主栈,一个辅助栈。
主栈:负责pop出队操作
副栈:负责push入队操作
因为队列是先进先出,而栈是后进先出,两者顺序相反,所以利用在数据在两个栈里面走一遍,实现了队列的先进先出的顺序。当主栈里的元素为空时,就可以去副栈里索取数据。
import java.util.Stack;
public class Solution {
private Stack<Integer> mainStack = new Stack<>();
private Stack<Integer> auxStack = new Stack<>();
public Integer pop(){
if(mainStack.isEmpty()){
while (!auxStack.isEmpty()){
mainStack.push(auxStack.pop());
}
}
if(mainStack.isEmpty()){
return Integer.MIN_VALUE;
}
else{
return mainStack.pop();
}
}
public void push(Integer item){
auxStack.push(item);
}
}