Maison >développement back-end >tutoriel php >Exemple d'implémentation d'une file d'attente bidirectionnelle en php
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(' ',$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;?>.
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<?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;?>À propos de la classe de file d'attente bidirectionnelle Recommandations de coursComment utiliser php pour implémenter un exemple de code de file d'attente bidirectionnelleClasse 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!