stack1与stack2
1.push的时候一直push到stack1中
2.pop的时候,检测stack2是否为空,当为空时,stack1中的元素push到stack2中,当stack2中不为空时,直接pop stack2
以下为实现的java代码
package 两个栈实现队列;
import java.util.Stack;
public class MyQueue<T> {
Stack<T> stack1 = new Stack<>();
Stack<T> stack2 = new Stack<>();
public void push(T element){
stack1.add(element);
}
public T pop() {
if(stack2.size()>0){
return stack2.pop();
}
while(stack1.size()>0){
stack2.add(stack1.pop());
}
if(stack2.size()==0) throw new IllegalArgumentException("no element");
return stack2.pop();
}
}