Понять, как выглядит куча min-max после delete-min и delete-max

У меня есть конкретный вопрос о проблеме кучи min-max в Java.

Если у вас есть входы в следующем порядке:

71, 8, 41, 100, 60

Будет ли дерево выглядеть следующим образом?

                   8
           100           41
       70       60

Как насчет после deleteMin а также deleteMax?

Я пытаюсь понять, что произойдет, если максимальный узел будет немного меньше, чем некоторые из минимальных узлов... Если вы можете помочь мне, объяснив это деревом, которое было бы здорово:)

1 ответ

Процесс создания минимальной кучи этих входных данных таков:

        71
      8    41
  100  60

И тогда это выглядит так:

     8
  71  41
100 60

И наконец, это выглядит так:

      8
  60    41
100  71

В это время у каждого неконечного узла его значение больше, чем у его дочернего узла. Таким образом, после удаления значения min будет удален корень указанной выше минимальной кучи, и в результате получится следующее:

     41
  60    100
71

И если вы удалите максимальное значение, это будет последний элемент, который удаляется. тогда результат будет такой:

     8
  60    41
71

Я надеюсь, что это поможет вам понять кучи.

Другие вопросы по тегам