2019-04-09 吴亲库里 库里的深夜食堂
使用队列来实现栈操作。
****
既然题目已经要求了,那么我们就不能直接简单粗暴的使用PHP的array_shift()和array_unshift().我这里定义了两个数组,来表示两个队列,然后利用一个辅助的变量就实现了利用队列来实现栈的操作。
private $queue1=[];
private $queue2=[];
/**
* Push element x onto stack.
* @param Integer $x
* @return NULL
*/
function push($x) {
array_push($this->queue2,$x);
while(!empty($this->queue1)){
array_push($this->queue2,array_shift($this->queue1));
}
$temp=$this->queue1;
$this->queue1=$this->queue2;
$this->queue2=$temp;
}
/**
* Removes the element on top of the stack and returns that element.
* @return Integer
*/
function pop() {
return array_shift($this->queue1);
}
/**
* Get the top element.
* @return Integer
*/
function top() {
return current($this->queue1);
}
/**
* Returns whether the stack is empty.
* @return Boolean
*/
function empty() {
return empty($this->queue1)==true;
}