双方向キューを実装する

巴扎黑
リリース: 2016-11-22 11:36:06
オリジナル
1180 人が閲覧しました

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 は独自の両端リンク リスト構造を実装しています。
•ダブルエンドリンクリストには 2 つの主な機能があります: ◦ Redis リストタイプの基礎となる実装の 1 つとして
• 他の機能モジュールによって使用される一般的なデータ構造として

• ダブルエンドリンクリストのパフォーマンス特性終了リンク リストとそのノードは次のとおりです。 ◦ ノードには先行ポインタと後続ポインタがあり、先行ノードと後続ノードにアクセスする複雑さは O(1) で、リンク リストの反復は双方向で実行できます。先頭から末尾まで、そして末尾から先頭まで。
◦ リンクされたリストにはテーブルの先頭と末尾へのポインターがあるため、先頭と末尾の処理の複雑さは O(1) です。ノード数を記録する属性があるため、O(1) で処理できます。次数内のリンク リストで返されるノード数 (長さ)。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート