Maison >développement back-end >tutoriel php >Exemple d'implémentation d'une file d'attente bidirectionnelle en php

Exemple d'implémentation d'une file d'attente bidirectionnelle en php

小云云
小云云original
2018-03-07 09:28:101700parcourir

Introduisons brièvement qu'en utilisation réelle, il peut également y avoir une file d'attente bidirectionnelle avec une sortie limitée (c'est-à-dire une file d'attente bidirectionnelle avec un point de terminaison permettant l'insertion et la suppression, et l'autre point de terminaison permettant uniquement l'insertion) et un file d'attente bidirectionnelle avec entrée limitée (c'est-à-dire un point de terminaison A deque qui autorise les insertions et les suppressions, l'autre point de terminaison autorise uniquement les suppressions). Et si l'élément inséré à partir d'un certain point de terminaison de la file d'attente bidirectionnelle est limité à être supprimé uniquement à partir de ce point de terminaison, alors la file d'attente bidirectionnelle se transformera en deux piles adjacentes en bas.

1. File d'attente à sens unique : ne peut entrer que par la tête et sortir par la queue
2. File d'attente bidirectionnelle : la tête et la queue peuvent entrer et sortir

<?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;?>
.

                                                                                                                                     File à sens unique : ne peut entrer que par le début et sortir par la queue

2. File d'attente bidirectionnelle : la tête et la queue peuvent entrer et sortir


Recommandations associées :
<?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;?>

À propos de la classe de file d'attente bidirectionnelle Recommandations de cours

Comment utiliser php pour implémenter un exemple de code de file d'attente bidirectionnelle

Classe de file d'attente bidirectionnelle php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment utiliser CURL en PHPArticle suivant:Comment utiliser CURL en PHP