簡単な紹介: 実際の使用では、出力が制限された双方向キュー (つまり、1 つのエンドポイントが挿入と削除を許可し、もう 1 つのエンドポイントが挿入のみを許可する双方向キュー) と 2 つのキューが存在することもあります。入力が制限されたウェイ キュー (つまり、一方のエンドポイントでは挿入と削除が許可され、もう一方のエンドポイントではデキューの削除のみが許可されます)。また、双方向キューの特定のエンドポイントから挿入された要素が、そのエンドポイントからのみ削除されるように制限されている場合、双方向キューは下部の 2 つの隣接するスタックに変換されます。
1. 一方向キュー: 先頭からのみ入場し、最後尾からのみ退出できます
2. 双方向キュー: 先頭と最後尾の両方から入場および退出できます
<?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;?>
1. 一方向キュー: できる先頭から入って最後尾から出るだけです
2. 双方向キュー: 先頭と最後尾の両方が出入りできます<?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;?>
以上がPHPでの双方向キューの実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。