問題タブ [min-heap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 最小ヒープ内のオブジェクトに直接アクセスする方法、Java
ここには、重み属性に基づいて Link オブジェクトを格納する最小ヒープ クラスがあります。私の目的は、最小ヒープに格納されているオブジェクトの属性に直接アクセスして変更できるようにすることです。「loc」属性のみに基づいてこれらのオブジェクトにアクセスできる必要があります。
たとえば、loc 値が 6 の Link オブジェクトにアクセスして、その親属性または重み属性を変更したい場合があります。ただし、アクセス時の loc 属性値しかわかりません。
私の理解では、これらのオブジェクトへのポインターの配列を使用する必要がありますが、これをどのように実装するかはわかりません。
ありがとう!
python - None だけのバイナリ ツリーは最小ヒープ ツリーと見なすことができますか?
このツリーが最小ヒープかどうかを確認するには、最小ヒープのバイナリ ツリーの再帰を記述する必要があります。テストケースの 1 つは NONE です。
最小ヒープ ツリーと見なされ、をNone
返すかTrue
、または?None
False
私が尋ねている理由は、ある時点で葉に到達し、それらのノードがNone
あり、基本ケースが である場合True
、それが返されるためTrue
です。
min-heap - 配列 A が最小ヒープかどうかを確認するには、C++ で FUNCTION を作成する必要がありますか? 最小ヒープの場合は true を返し、それ以外の場合は false を返します
この質問をスタックオーバーフローで検索します。しかし、誰かが再帰的な手順を使用したため、コーディングを理解するのは困難です。
最小ヒープでは、すべての親ノードがその子よりも小さいか等しいことを知っています...式ツリー[K/2]を使用してツリー[K]で親を表し、その左の子はツリー[2K]であり、その右child は Tree[2K+1] であり、これは、配列を 0 ではなく 1 から開始する場合にのみ当てはまります。
配列が最小ヒープかどうかを確認するには、次の 3 つのケースがあります
。 1. 内部ノードに左右両方の子がある。
2. 最後のノードには、左の子である子が 1 つだけある場合があります。
3. リーフには子がありません。
しかし、プログラムのコードの形でそれを行う方法を理解できません...プログラムを変更するか、ヒントを教えてください。どうすればそれを行うことができますか....????
c++ - `priority_queue` による最小ヒープの作成に `std::greater` を使用する理由
を使用して最小ヒープを作成するために、なぜ を使用priority_queue
するstd::greater
必要があるのでしょうか?
私にとって、最小値は常にヒープの一番上にあるため、採用クラスはstd::less
更新:
一方、priority_queue
(最大ヒープ) のデフォルトの動作は最大値を一番上に保持することであるstd::greater
ため、最小ヒープの作成ではなく、最大ヒープの作成に使用する必要があるように見えます