栈实现队列(Java)
一、栈
栈是一种先进后出得数据结构,入栈push()和弹栈pop()是主要函数方法。
话不多说,我们直接来看栈得一个简单应用:即用栈实现队列
栈实现队列
队列是一种先进先出得数据结构,这里我们采用两个栈来实现队列,一个栈为临时栈,来存放中间数据,另一个栈为结果栈,来存放最终得数据。
(1)首先我们将数据放入到临时栈中,再将临时栈得数据放入到结果栈,将临时栈弹出。
(2)如果有新得数据入栈,我们首先将结果栈中得数据压入到临时栈,然后将新数据压入到临时栈中。
(3)最后再将临时栈得数据push到结果栈,这样结果栈中得数据就满足先来先到,一直重复2,3步骤,最后实现队列。
核心代码如下:
public void push(int x) {
Stack _temp_data=new Stack();
while(!_data.isEmpty()){
_temp_data.push(_data.peek());
_data.pop();
}
_temp_data.push(x);
while(!_temp_data.isEmpty()){
_data.push(_temp_data.peek());
_temp_data.pop();
}
}