/**
* 双向队列
*/
class Double_queue
{
public $queue = array();
public $length = 0;
/**
* 从队列头部压入
*/
public function front_add($node){
array_unshift($this->queue,$node);
$this->count_queue();
}
/**
* 从队列尾部弹出
*/
public function front_remove(){
$node = array_shift($this->queue);
$this->count_queue();
return$node;
}
/**
* 从队列尾部压入
*/
public function rear_add($node){
array_push($this->queue,$node);
$this->count_queue();
}
/**
* 从队列尾部弹出
*/
public function rear_remove(){
$node = array_pop($this->queue);
$this->count_queue();
return$node;
}
/**
* 获取队列长度
*/
public function count_queue(){
$this->length = count($this->queue);
}
/**
* 清空队列
*/
public function clean_queue(){
unset($this->queue);
}
}
//======================================
//将一个或多个单元压入数组的末尾(入栈)
array_push();
//将数组最后一个单元弹出(出栈)
array_pop();
//将数组开头的单元移出数组
array_shift();
// 在数组开头插入一个或多个单元
array_unshift();