利用两个栈实现一个队列
思路:先将数据全部压入栈1中,再把栈1中的数据全部压入栈2中,最后依次弹出栈2的数据
import java.util.Stack;
//使用两个栈来实现一个队列;栈,先进后出,队列先进先出
public class queue<E>{
Stack<E> s1=new Stack<E>();
Stack<E> s2=new Stack<E>();
public void offer(E val) {
s1.push(val);
}
public E pull() {
while(s2.isEmpty())
while(!s1.isEmpty()){
s2.push(s1.pop());
}
return s2.pop();
}
public boolean isEmpty() {
return s1.isEmpty() && s2.isEmpty();
}
public static void main(String[] args) {
queue q=new queue();
q.offer(1);
q.offer(2);
q.offer(3);
while(!q.isEmpty()) {
System.out.println(q.pull());
}
}
}