了解删除min和delete-max后的min-max堆的样子



我有一个关于Java中最小-最大堆相关问题的特定问题。

如果您按以下顺序输入:

71, 8, 41, 100, 60

这棵树看起来像下面这样吗?

                   8
           100           41
       70       60

deleteMindeleteMax之后呢?

我试图了解如果最大节点在某种程度上小于一些最小节点会发生什么。。。如果你能帮我用一棵树来解释它,那就太好了:)

创建此输入的最小堆的过程如下:

        71
      8    41
  100  60

然后它看起来是这样的:

     8
  71  41
100 60

最后,它看起来是这样的:

      8
  60    41
100  71

此时,每个非叶节点的值都大于其子节点的值。因此,在您删除最小值之后,上面最小堆的根将被删除,结果是:

     41
  60    100
71

如果你删除了最大值,那将是最后一个被删除的元素。那么结果是:

     8
  60    41
71

我希望这能帮助你理解希普。

相关内容

  • 没有找到相关文章

最新更新