Heim >Backend-Entwicklung >PHP-Tutorial >Beispiel für die Implementierung einer bidirektionalen Warteschlange in PHP

Beispiel für die Implementierung einer bidirektionalen Warteschlange in PHP

小云云
小云云Original
2018-03-07 09:28:101691Durchsuche

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(&#39; &#39;,$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(&#39;a&#39;);    $obj->Head_in(&#39;b&#39;);    $obj->Head_in(&#39;c&#39;);    $obj->Tail_out();    $arr=$obj->show();    echo $arr;?>
Verwandte Empfehlungen:

Ü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(&#39; &#39;,$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(&#39;a&#39;);    $obj->Head_in(&#39;b&#39;);    $obj->Head_in(&#39;c&#39;);    $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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:So verwenden Sie CURL in PHPNächster Artikel:So verwenden Sie CURL in PHP