問題タブ [max-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.

0 投票する
1 に答える
1805 参照

java - 最大ヒープの実装

次の Java での MaxHeap 実装に対してどのような修正を行う必要がありますか? Insert 関数は、呼び出されたときに実行を続けます。Insert 関数と BuildHeap 関数のエラーは何ですか?PercolateDown 関数を編集しました。私はそれが今正しいはずだと思います..?

0 投票する
2 に答える
1716 参照

c++ - 最大ヒープの配列表現

私は最大ヒープを作成しようとしています。ロジックは単純です。親がその子の 1 つより小さい場合は、それらを交換します。を使って実装してみました

入力を使用しています

木は次のように見えるはずです

そのため、配列表現は90 36 17 25 26 7 1 2 3 19 まだコードの出力である必要があります

私はそれを調べて、多くのチュートリアルで多くの同じコードを見つけました. 出力が配列内のツリーの表現ではないのはなぜですか? 私はそれを誤解しましたか?

説明ありがとう

0 投票する
1 に答える
876 参照

c++ - 同じ要素を持つ最大ヒープと最小ヒープ

次の例を考えてみましょう。乱数を最小ヒープに追加し、同時に同じ番号を同じ順序で最大ヒープに追加しています。したがって、最後に、これらの 2 つのヒープの数値は同じになりますが、1 つが最小ヒープで、2 つ目が最大ヒープです。

ここで質問です:

最大ヒープから最大要素を削除することにした場合、最大ヒープからのその最大要素は常に最小ヒープの一番下にありますか? そうでない場合、別の質問は、その最大要素を最小ヒープの最後の要素と交換して最小ヒープから削除したい場合、最後の要素を削除する場合、その切り替えられた要素を比較する必要がある操作を実行する必要があるかどうかです。最小ヒープを修復するために彼の子供と一緒に?それとも、最小ヒープを修正するために親と比較することが常に当てはまりますか?