首頁 > 後端開發 > php教程 > 實現雙向隊列

實現雙向隊列

巴扎黑
發布: 2016-11-22 11:36:06
原創
1184 人瀏覽過

class deque{
public $queue = array();
public $length = 0;
public function rpop(){
$node = array_pop($this->queue);
$this->countque();
return $node;
}
public function rpush($node){
array_push($this->queue, $node);
$this->countque();
return $this->queue;
}
public function lpop(){
$node = array_shift($this->queue);
$this->countque();
return $node;
}
public function lpush($node){
array_unshift($this->queue, $node);
$this->countque();
return $this->queue;
}
private function countque(){
$this->length = count($this->queue);
}
}
登入後複製

Redis 實作了自己的雙端鍊錶結構。
•雙端鍊錶主要有兩個作用: ◦作為Redis 列表類型的底層實作之一; 
◦作為通用資料結構,被其他功能模組所使用; 

•雙端鍊錶及其節點的效能特性如下: ◦節點帶有前驅和後繼指針,存取前驅節點和後繼節點的複雜度為O(1)  ,且對鍊錶的迭代可以在從錶頭到錶尾和從錶尾到表頭兩個方向進行; 
◦鍊錶帶有指向表頭和錶尾的指針,因此對錶頭和表尾進行處理的複雜度為O(1)  ; 
◦鍊錶帶有記錄節點數量的屬性,所以可以在O(1)  複雜度內回傳鍊錶的節點數量(長度);

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板