在delete-min和delete-max之后了解min-max堆的样子

时间:2015-03-31 01:53:02

标签: java algorithm data-structures minmax-heap

我有一个关于Java中min-max堆相关问题的具体问题。

如果您按此顺序输入:

71, 8, 41, 100, 60

树是否如下所示?

                   8
           100           41
       70       60

deleteMindeleteMax之后呢?

我试图理解如果最大节点比某些最小节点小一些会发生什么......如果你能用一棵树来解释它会帮助我很好:)

1 个答案:

答案 0 :(得分:-2)

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

        71
      8    41
  100  60

然后它看起来像这样:

     8
  71  41
100 60

最后,它看起来像这样:

      8
  60    41
100  71

此时,每个非叶节点,其值都大于其子节点的值。 因此,删除min值后,上面的min-heap的根将被删除,结果如下:

     41
  60    100
71

如果删除最大值,那么这将是删除的最后一个元素。 那么结果就是这样:

     8
  60    41
71

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