- 算法
辅助栈核心思想
利用辅助栈,原始栈用于push,辅助栈用于pop。每当有pop时,如果辅助栈中有数据,则直接pop。如果没有,则将原始栈中数据全部pop进辅助栈中。
此外对于实现类型的题,需要首先声明全局变量,在构造器里需要对于全局变量进行赋值。
3. 代码
class MyQueue {
Stack push;
Stack pop;
public MyQueue() {
push = new Stack();
pop = new Stack();
}
public void push(int x) {
push.push(x);
}
public int pop() {
if(!pop.isEmpty()) return pop.pop();
else{
transform();
}
return pop.pop();
}
public int peek() {
if(!pop.isEmpty()) return pop.peek();
else{
transform();
}
return pop.peek();
}
public boolean empty() {
if(pop.isEmpty() && push.isEmpty()) return true;
else return false;
}
public void transform(){
while(!push.isEmpty()){
pop.push(push.pop());
}
}
}



