我有一个关于Java中最小-最大堆相关问题的特定问题。
如果您按以下顺序输入:
71, 8, 41, 100, 60
这棵树看起来像下面这样吗?
8
100 41
70 60
deleteMin
和deleteMax
之后呢?
我试图了解如果最大节点在某种程度上小于一些最小节点会发生什么。。。如果你能帮我用一棵树来解释它,那就太好了:)
创建此输入的最小堆的过程如下:
71
8 41
100 60
然后它看起来是这样的:
8
71 41
100 60
最后,它看起来是这样的:
8
60 41
100 71
此时,每个非叶节点的值都大于其子节点的值。因此,在您删除最小值之后,上面最小堆的根将被删除,结果是:
41
60 100
71
如果你删除了最大值,那将是最后一个被删除的元素。那么结果是:
8
60 41
71
我希望这能帮助你理解希普。