用栈模拟队列的push()和pop()方法:
栈的特点时”先进后出”,而队列的特点是“先进先出”。、
思路
找一个栈来存放入队的操作,再找一个栈用来出队,如果当前的出队栈不是空的,那我们就先出出栈队的,但如果出栈队是空的,那么就先将入栈队的数据压入到出栈队中,再从出栈队的顶部开始输出数据。
代码实现:
//栈模拟队列
class MyQueue<E>{
prinvate Stack<E> in = new Stack<E>();
private Stack<E> out = new Stack<E>();
//判断队列是否为空
public boolean isEmpty(){
return in.size() == 0&& (out.size()==0);
}
//入队
public void offer(E e){
while(!out.empty()){
in.push(out.pop());}
//入栈
in.push(e);}
//出队
public E poll(){
while(!in.empty()){
out.push(in.pop());
}
return out.pop();
}
}