0

現在、最大ヒープを実行しています。remove() メソッドを使用すると、より大きな子と交換することを理解しています。両方の子の優先順位が同じ場合はどうなりますか? 例えば

ケース 1:

ヒープ = [5,7,7,16,15]

5 を削除して 15 に置き換えると、右側に滴り落ちるので (これは間違っています)、左側に滴り落ちます。

しかし、私が持っている場合、同じロジックを使用して

ヒープ = [5,7,7,16,15,18]

左に垂れ下がると、有効なヒープではなくなります。

有効なヒープを確保するにはどうすればよいですか?

4

1 に答える 1

0

それはどうでもいい事です。

最初のケースでは、右に滴り落ちるのは問題ありません。

[15, 7, 7, 16] -> [7, 7, 15, 16]

最初のケースでは、左に滴り落ちるのは問題ありません。

[15, 7, 7, 16] -> [7, 15, 7, 16]

2 番目のケースでは、右に滴り落ちるのは問題ありません。

[18, 7, 7, 16, 15] -> [7, 7, 18, 16, 15]

2 番目のケースでは、左に滴り落ちるのは問題ありません。

[18, 7, 7, 16, 15] -> [7, 18, 7, 16, 15] -> [7, 15, 7, 16, 18]

于 2013-05-24T05:45:14.637 に答える