Понять, как выглядит куча 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
Я надеюсь, что это поможет вам понять кучи.