ホームページ >バックエンド開発 >PHPチュートリアル >PHPデータ構造キュー(SplQueue)とプライオリティキュー(SplPriorityQueue)の簡単な使用例、プライオリティキューデータ構造_PHPチュートリアル

PHPデータ構造キュー(SplQueue)とプライオリティキュー(SplPriorityQueue)の簡単な使用例、プライオリティキューデータ構造_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:54:021110ブラウズ

PHP データ構造キュー (SplQueue) と優先キュー (SplPriorityQueue) の簡単な使用例、優先キュー データ構造

キューは、私たちの生活におけるキューと同じように、より単純なデータ構造であり、その特徴は先入れ先出し (FIFO) です。 。

PHP SPL の SplQueue クラスは、スタックと同様に、SplDoublyLinkedList を継承することで簡単に実装できます。
SplQueue クラスの概要は次のとおりです:

SplQueue は次のように単純に使用されます:

コードをコピーします コードは次のとおりです:
$queue = 新しい SplQueue();

/**
* キューと二重リンク リストの違いは、スタックの IteratorMode が次のもののみに変更されることです。 * (1) SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP (デフォルト値、反復後にデータが保存されます)
* (2) SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE (反復後にデータが削除される)
​*/
$queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE);

//SplQueue::enqueue() は実際には SplDoublyLinkedList::push() です
$queue->enqueue('a');
$queue->enqueue('b');
$queue->enqueue('c');

//SplQueue::dequeue() は実際には SplDoublyLinkedList::shift() です
print_r($queue->dequeue());

foreach($queue as $item) {
echo $item .PHP_EOL;
}

print_r($queue);

プライオリティキューSplPriorityQueueはヒープをベースに実装されています(後述)。

SplPriorityQueueのクラス概要は以下の通りです:

SplPriorityQueue は使い方が簡単です:

れーれー

http://www.bkjia.com/PHPjc/998573.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/998573.html技術記事 PHP データ構造キュー (SplQueue) と優先キュー (SplPriorityQueue) の簡単な使用例 優先キュー データ構造 キューは、私たちの生活におけるキューと同じように、より単純なデータ構造です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。