ホームページ >バックエンド開発 >PHPチュートリアル >PHP がキュー (Queue) データ構造を実装する_PHP チュートリアル
Queue は、フロントエンドでの削除操作 (一般にデキューと呼ばれます) とバックエンドでの挿入操作 (一般にエンキューと呼ばれます) のみを実行できる特別な先入れ先出し線形テーブルです。削除操作を実行する端はキューの先頭と呼ばれ、挿入操作を実行する端はキューの末尾と呼ばれます。キューは、先入れ先出しまたは後入れ後出しの原則に従ってデータを整理します。キュー内に要素が存在しない場合、それは空のキューと呼ばれます。
データ構造とアルゴリズム(PHP実装) - キュー(Queue)1
/**
* データ構造とアルゴリズム (PHP 実装) - キュー (Queue)。
*
* @author Chuangxiang Programming (TOPPHP.ORG)
* @copyright Copyright (c) 2013 TOPPHP.ORG All Rights Reserved
* @license http://www.opensource.org/licenses/mit-license.php MIT ライセンス
* @バージョン 1.0.0 - Build20130607
*/
クラスキュー{
/**
* 列。
*
* @var 配列
*/
プライベート $キュー;
/**
* キューの長さ。
*
* @var 整数
*/
プライベート $size;
/**
※構築方法 - データを初期化します。
*/
パブリック関数 __construct() {
$this->queue = array();
$this->サイズ = 0;
}
/**
※チーム運営に参加してください。
*
* @param は、$data エンキュー データを混合しました。
* @return object オブジェクト自体を返します。
*/
パブリック関数エンキュー($data) {
$this->queue[$this->size++] = $data;
$this を返します;
}
/**
* デキュー操作。
*
* @returnmixed キューが空の場合は FALSE を返し、それ以外の場合はキューの先頭要素を返します。
*/
パブリック関数 dequeue() {
If (!$this->isEmpty()) {
--$this->サイズ;
$front = array_splice($this->queue, 0, 1);
$front[0] を返します;
}
FALSE を返します;
}
/**
* キューを取得します。
*
* @return array キュー全体を返します。
*/
パブリック関数 getQueue() {
$this->queue;
を返す
}
/**
* チームの先頭要素を取得します。
*
* @returnmixed キューが空の場合は FALSE を返し、それ以外の場合はキューの先頭要素を返します。
*/
パブリック関数 getFront() {
If (!$this->isEmpty()) {
$this->queue[0];
を返します
}
FALSE を返します;
}
/**
* キューの長さを取得します。
*
* @return integer キューの長さを返します。
*/
パブリック関数 getSize() {
$this->size;
を返す
}
/**
* キューが空かどうかを確認します。
*
* @return boolean キューが空の場合は TRUE を返し、それ以外の場合は FALSE を返します。
*/
パブリック関数 isEmpty() {
0 を返す === $this->size;
}
}
?>
サンプルコード1
$queue = 新しいキュー();
$queue->enqueue(1)->enqueue(2)->enqueue(3)->enqueue(4)->enqueue(5)->enqueue(6);
echo '
'、print_r($queue->getQueue(), TRUE)、'';
'、print_r($queue->getQueue(), TRUE)、'';
注: PHP 配列関数には、array_unshift (エンキュー) および array_shift (デキュー) というキューのような関数がすでにあります。