ホームページ  >  記事  >  バックエンド開発  >  PHPでの双方向キューの実装例

PHPでの双方向キューの実装例

小云云
小云云オリジナル
2018-03-07 09:28:101620ブラウズ

簡単な紹介: 実際の使用では、出力が制限された双方向キュー (つまり、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(&#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;?>

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(&#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;?>

関連の推奨事項:

双方向キュークラスの推奨コース

PHP を使用して双方向キューのコード例を実装する方法

php 双方向キュークラス

以上がPHPでの双方向キューの実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。