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

小云云
Libérer: 2023-03-20 20:36:02
original
1620 Les gens l'ont consulté

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;?>
Copier après la connexion
Copier après la connexion
.

                                                                                                                                     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;?>
Copier après la connexion
Copier après la connexion

À 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!