この記事では、PHP SPL 標準ライブラリのデータ構造ヒープ (SplHeap) の簡単な使用例を中心に紹介し、最大ヒープ (SplMaxHeap) と最小ヒープ (SplMinHeap) の関連知識についても説明します。お役に立てれば幸いです。
ヒープは、優先キューを実装するために設計されたデータ構造であり、バイナリ ヒープ (バイナリ ツリーの一種) を構築することによって実装されます。最大のルート ノードを持つヒープは最大ヒープまたは大ルート ヒープと呼ばれ、最小のルート ノードを持つヒープは最小ヒープまたは小ルート ヒープと呼ばれます。バイナリ ヒープは、ソート (ヒープ ソート) にもよく使用されます。
以下の通り: 最小ヒープ (どのノードの優先順位もその子ノードよりも低くなりません)
PHP SplHeap の実装を見てください:
明らかに、これは抽象クラス、最大ヒープ (SplMaxHeap) です。そして最小ヒープ(SplMinHeap)はそれを継承して実装されています。 max-heap と min-heap のための追加メソッドはありません
SplHeap の簡単な使用法は次のとおりです:
class MySimpleHeap extends SplHeap { //compare()方法用来比较两个元素的大小,绝对他们在堆中的位置 public function compare( $value1, $value2 ) { return ( $value1 - $value2 ); } } $obj = new MySimpleHeap(); $obj->insert( 4 ); $obj->insert( 8 ); $obj->insert( 1 ); $obj->insert( 0 ); echo $obj->top(); //8 echo $obj->count(); //4 foreach( $obj as $number ) { echo $number; }
関連する推奨事項:
PHP SPL The Lost Gem_ PHP チュートリアル
以上がPHP SPL データ構造ヒープ (SplHeap) の簡単な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。