ホームページ >バックエンド開発 >PHPチュートリアル >PHPマスター| PHP開発のデータ構造:ヒープ

PHPマスター| PHP開発のデータ構造:ヒープ

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-23 08:39:10973ブラウズ

この記事では、スタック、キュー、ツリーに密接に関連する特殊な木のようなデータ構造であるヒープを紹介します。 ヒープは、

ヒーププロパティを維持します:親ノードの値は、常に子供の値に比べて順序付けられます。 主要な概念には、最大ヒープ、ミニヒープ、優先キューが含まれます

キーテイクアウト:

ヒープは、ヒーププロパティに付着する木のような構造です。 バリエーションには、Max-Heaps(親≥子供)、Min-Heaps(親≤子供)、および優先キューが含まれます。
    通常、完全なバイナリツリーとして実装され、ヒープはバイナリツリーとは異なり、兄弟やいとこの注文を欠いています。 一般的な操作:作成、isempty、挿入、抽出。
  • アレイベースのヒープ実装が実行可能です。
  • n
  • ノードを備えたバイナリヒープには、最大2 PHPで、およびが提供されます。多くの場合、ヒープベースの優先キューは、サービスデスクとグラフアルゴリズムでの使用を見つけます。
  • SplHeapヒープの詳細:SplMaxHeap SplMinHeap SplPriorityQueue最大ヒープは根に最大の価値を置き、親は常に子供よりも大きくなります。ミンヒープは逆です。 PHPのSPLは、これらすべてのタイプのツールを提供します。 最大ヒープの例:

ヒープは、しばしばバイナリツリーがバイナリツリーの固有の順序を欠いています。基本操作には、作成、isempty、挿入、および抽出(ルートの削除)が含まれます。 ヒープからルートを抽出すると、

semiheap

が去り、再構築が必要です。 これは、最後のノードをルートに移動し、ヒーププロパティが復元されるまで新しいルートを「トリックダウン」することによって行われます。

PHP Master | Data Structures for PHP Devs: Heaps

アレイベースのヒープ実装:

バイナリMax-Heapは、配列を使用して実装できます。 次のPHPコードはこれを示しています:

PHP Master | Data Structures for PHP Devs: Heaps

挿入は、端にアイテムを追加し、その正しい位置に「それをトリクリング」します。 抽出はルートを除去し、最後のアイテムに置き換え、「それを滴下します。」

および

<code class="language-php"><?php
class BinaryHeap {
    protected $heap;
    // ... (rest of the code as provided in the input) ...
}
?></code>

phpの

および

ヒープ管理を簡素化します。 これらのクラスを拡張し、カスタム比較のためにメソッドをオーバーライドします。 SplMaxHeap SplMinHeap

SplMaxHeapSplMinHeapはキューのように動作しますが、内部で最大ヒープを使用します。 優先順位ベースのタスクに役立ちます。 優先順位を定義するためにcompareメソッドをオーバーライドします。 例:

SplPriorityQueue概要:

この記事では、ヒープデータ構造、PHP(手動でSPLクラスの使用)での実装、特に優先キューでのアプリケーションについて説明しました。 将来の記事では、グラフを探索します。

よくある質問(FAQ):

提供されるFAQセクションは包括的であり、PHPのヒープに関する一般的な質問に正確に対処します。 変更や追加の必要はありません

以上がPHPマスター| PHP開発のデータ構造:ヒープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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