Lassen Sie mich kurz vorstellen, dass es in der tatsächlichen Verwendung auch eine bidirektionale Warteschlange mit begrenzter Ausgabe geben kann (dh eine bidirektionale Warteschlange mit einem Endpunkt, der das Einfügen und Löschen zulässt, und dem anderen Endpunkt, der nur das Einfügen zulässt) und eine bidirektionale Warteschlange mit begrenzter Eingabe (d. h. ein Endpunkt ist eine Deque, die Einfügungen und Löschungen zulässt, der andere Endpunkt erlaubt nur Löschungen). Und wenn das von einem bestimmten Endpunkt der bidirektionalen Warteschlange eingefügte Element nur von diesem Endpunkt gelöscht werden darf, verwandelt sich die bidirektionale Warteschlange unten in zwei benachbarte Stapel.
<.> 1. Einweg-Warteschlange: kann nur von Anfang an betreten werden. Einweg-Warteschlange: kann nur von Anfang an betreten und am Ende verlassen werden. 2. Zwei-Wege-Warteschlange: sowohl der Kopf als auch der Ausgang Der Schwanz kann ein- und aussteigen
<?php class duilie{ private $arr=array(); //从头进 public function Head_in($item){ return array_unshift($this->arr,$item); } //从头出 public function Head_out(){ return array_shift($this->arr); } //从尾进 public function Tail_in($item){ return array_push($this->arr,$item); } //从尾出 public function Tail_out(){ return array_pop($this->arr); } //清空队列 public function clear(){ unset($this->arr); } //显示队列 public function show(){ return implode(' ',$this->arr); } //获得队列队尾的值 public function get_last(){ return array_pop($this->arr); } //获得队列队首的值 public function get_first(){ return array_shift($this->arr); } } $obj=new duilie(); $obj->Tail_in('a'); $obj->Head_in('b'); $obj->Head_in('c'); $obj->Tail_out(); $arr=$obj->show(); echo $arr;?>
Über den Zwei-Wege-Warteschlangenkurs Kursempfehlungen
<?php class duilie{ private $arr=array(); //从头进 public function Head_in($item){ return array_unshift($this->arr,$item); } //从头出 public function Head_out(){ return array_shift($this->arr); } //从尾进 public function Tail_in($item){ return array_push($this->arr,$item); } //从尾出 public function Tail_out(){ return array_pop($this->arr); } //清空队列 public function clear(){ unset($this->arr); } //显示队列 public function show(){ return implode(' ',$this->arr); } //获得队列队尾的值 public function get_last(){ return array_pop($this->arr); } //获得队列队首的值 public function get_first(){ return array_shift($this->arr); } } $obj=new duilie(); $obj->Tail_in('a'); $obj->Head_in('b'); $obj->Head_in('c'); $obj->Tail_out(); $arr=$obj->show(); echo $arr;?>
Anleitung Verwenden Sie PHP, um ein Codebeispiel für eine Zwei-Wege-Warteschlange zu implementieren
PHP-Klasse für eine Zwei-Wege-Warteschlange
Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung einer bidirektionalen Warteschlange in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!