用栈实现队列
一个进栈,一个出栈。
push到进栈,
pop时判断出栈是否为空,如果是空则将进栈转移到出栈,否则直接弹出栈顶元素
//双栈实现
Stack<T> stack1 = new Stack<>(); // 进入队列
Stack<T> stack2 = new Stack<>(); // 出队列
public void push(T obj){
stack1.push(obj);
}
public T pop(){
if(!stack2.isEmpty()){
return stack2.pop();
}
if(stack1.isEmpty()){
return null;
}
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
return stack2.pop();
}