PHP配列でキューをループする方法

PHPz
リリース: 2023-04-17 17:20:03
オリジナル
549 人が閲覧しました

PHP は古典的なプログラミング言語であり、オープンソースの解釈型スクリプト言語です。 PHPはHTMLに埋め込むことができ、Web開発の分野でよく使われており、Webアプリケーション開発において重要なツールの1つです。 PHP には多くの強力な機能があり、重要な機能の 1 つは配列です。 PHP では、配列は複数の値を格納できるコンテナーであり、それらの値は同じタイプまたは異なるタイプのデータである可能性があります。 PHP では、循環キューを使用して配列内の要素を走査できます。この記事では、循環キューを使用して配列走査を実装する方法を紹介します。

1. 循環キューとは何ですか?

キューは一般的なデータ構造であり、特殊な線形テーブルです。キューでは、データ要素の挿入および削除操作はキューの両端でのみ実行できます。キューの先頭をフロント、キューの最後尾をリアと呼びます。キュー スペースの制限がない場合、キューの長さは任意に増やすことができ、これを通常のキューと呼びます。通常のキューの重大な欠点は、キューの長さが増大し続けると、キュー配列の前のスペースが無駄になる可能性が高いことです。この無駄は、データ量が少ない場合でも回避する必要があります。循環キューは、この問題の解決策です。

循環キューは実際には循環シーケンスであり、配列の始点と終点が隣接しており、ポインタは配列に沿って循環します。循環キューはフロントエンド(前)とバックエンド(後)をリング状に接続し、キューがいっぱいになると、入ってくる新しい要素がキューの先頭の要素を上書きすることで、リサイクル問題を実現します。このデータ構造は、通常のキューのスペースの無駄の問題を解決し、配列要素のスペースを最大限に活用します。

2. 循環キューの実装

PHP では、配列を使用して循環キューを実装できます。以下は循環キューの実装例です:

class CircleQueue {
    private $front; //队头指针
    private $rear; //队尾指针
    private $queueSize; //队列大小
    private $maxSize; //队列容量
    private $queue; //队列数组 

    public function __construct($maxSize){
        $this->maxSize = $maxSize;
        $this->front = 0;
        $this->rear = 0;
        $this->queueSize = 0;
        $this->queue = array();
    }
    
    public function enQueue($item){ //入队操作
        if($this->isFull()){
            return false;
        }else{
            $this->queue[$this->rear] = $item; //加入队列
            $this->rear = ($this->rear+1) % $this->maxSize; //队尾指针加1,如果超过了容量,就回到最开始(也就是第一个元素的位置)
            $this->queueSize++;
            return true;
        }
    }
    
    public function deQueue(){ //出队操作
        if($this->isEmpty()){
            return false;
        }else{
            $item = $this->queue[$this->front]; //取出队头元素
            $this->front = ($this->front+1) % $this->maxSize; //队头指针加1,如果超过了容量,就回到最开始(也就是第一个元素的位置)
            $this->queueSize--;
            return $item;
        }
    }
    
    public function isEmpty(){ //判断队列是否为空
        return $this->queueSize == 0;
    }
    
    public function isFull(){ //判断队列是否已满
        return $this->queueSize == $this->maxSize;
    }
    
    public function size(){ //获取队列大小
        return $this->queueSize;
    }
    
    public function getQueue(){ //获取队列数组
        return $this->queue;
    }
}
ログイン後にコピー

3ループを使用する 配列を走査するキュー

PHP では、循環キューを使用して配列内の要素を走査できます。配列は複数の要素で構成されており、循環キューは配列要素をキューに入れ、キューを横断して配列要素にアクセスできます。以下は、循環キューを使用して配列を走査するサンプル コードです。

$arr = array(1,2,3,4,5);
$queue = new CircleQueue(count($arr) + 1); //初始化队列,数组元素数量+1

//将数组元素入队列
foreach($arr as $value){
    $queue->enQueue($value);
}

//使用循环队列遍历数组元素
while(!$queue->isEmpty()){
    $item = $queue->deQueue();
    echo $item . ' ';
}
ログイン後にコピー

最初に配列を作成し、次に循環キューを作成し、配列内のすべての要素をキューに入れます。最後に、循環キューを使用して配列要素を走査し、各要素の値を出力して、配列の走査を完了します。

4. 循環キューの長所と短所

循環キューには次の利点があります:

1. ストレージ領域を節約し、配列領域を最大限に活用し、スペースの無駄;
2. データ量の増大によるストレージの問題を解決する;
3. 循環キューの実装では、キューへの入力とキューからの取り出しの時間計算量は O(1) であり、時間効率が高くなります。

しかし、循環キューにはいくつかの欠点もあります:

1. キューの容量には制限があり、キューの長さは固定されています。保存されたデータの量がキューの容量を超えると、データは失われます。 ;
2. すべてのスペースを使用する必要があります。そうしないと、キューの容量が小さくなり、キューの柔軟性も制限されます。;
3. 循環キューのデータは比較的制限されています。一部の複雑なデータ構造の場合、循環キューは適切ではありません。

5. 概要

この記事では、PHP 配列循環キューのトラバーサル方法を紹介し、循環キューの定義、実装、利点と欠点、およびその他の関連知識も紹介します。循環キューはデータ構造における重要な概念であり、通常のキューのスペース無駄の問題を解決し、ストレージスペースの利用率を向上させ、データのストレージ効率を向上させるために使用できます。実際の開発では、さまざまなアプリケーション シナリオに適応するために、必要に応じて循環キューまたは通常のキューを選択できます。

以上がPHP配列でキューをループする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!