雙端隊列(deque)是由一些項的表組成的數據結構,對該數據結構可以進行下列操作:
push(D,X) 將項X 插入到雙端隊列D的前端
pop(D) 從雙端隊列D中刪除前端項並將其返回
inject(D,X) 將項X插入到雙端隊列D的尾端
eject(D) 從雙端隊列D中刪除尾端項並將其返回
PHP實現代碼
代碼如下 復制代碼 <?php例子
編寫支持雙端隊伍的例程,每種操作均花費O(1)時間
代碼如下 復制代碼<?php
class deque
{
public $queue = array();
public $length = 0;
public function frontAdd($node){
array_unshift($this->queue,$node);
$this->countqueue();
}
public function frontRemove(){
$node = array_shift($this->queue);
$this->countqueue();
return $node;
}
public function rearAdd($node){
array_push($this->queue,$node);
$this->countqueue();
}
public function rearRemove(){
$node = array_pop($this->queue);
$this->countqueue();
return $node;
}
public function countqueue(){
$this->length = count($this->queue);
}
}
$fruit = new deque();
echo $fruit -> length;
$fruit -> frontAdd("Apple");
$fruit -> rearAdd("Watermelon");
echo '<pre>';
print_r($fruit);
echo '</pre>';
?>
結果
0
deque Object
(
[queue] => Array
(
[0] => Apple
[1] => Watermelon
)
[length] => 2
)