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 implementiert seine eigene doppelendige verknüpfte Listenstruktur.
•Doppelend verknüpfte Liste hat zwei Hauptfunktionen: ◦Als eine der zugrunde liegenden Implementierungen des Redis-Listentyps
◦Als allgemeine Datenstruktur, die von anderen Funktionsmodulen verwendet wird; Doppelend verknüpfte Liste Die Leistungsmerkmale ihrer Knoten sind wie folgt: ◦Der Knoten verfügt über Vorgänger- und Nachfolgerzeiger, die Komplexität des Zugriffs auf den Vorgängerknoten und den Nachfolgerknoten beträgt O (1) und die Iteration der verknüpften Liste kann von erfolgen Der Tabellenkopf wird in zwei Richtungen vom Kopf zum Tabellenende und vom Tabellenende zum Tabellenende verarbeitet tail ist O(1);
◦Die verknüpfte Liste verfügt über ein Mengenattribut für Datensatzknoten, sodass die Anzahl (Länge) der Knoten in der verknüpften Liste innerhalb der Komplexität von O(1) zurückgegeben werden kann