Я начну с утверждения, что вставка узла в минимальную кучу описывалась в других моих статьях: Построение минимальной кучи из дерева и Создание минимальной кучи из массива.

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

Начнем с удаления корневого узла. Причина, по которой мы удаляем корневой узел, связана с основной концепцией кучи: приоритетной очередью. Элемент с наивысшим приоритетом удаляется из очереди приоритетов.

При удалении корневого узла последний узел становится новым корневым узлом.

Корневой элемент может находиться в неправильном месте минимальной кучи. Поскольку 48 больше, чем его дочерние элементы, он должен стекать в правильное положение. Мы будем следовать тому же подходу, что и в статье Построение Min-Heap из дерева.

Производится сравнение двух дочерних элементов, 4 и 7, и выбирается наименьшее значение. Поскольку 4 меньше 48, они меняются местами.

Затем сравниваются 5 и 8, чтобы снова получить самого маленького ребенка из 48. Учитывая, что 5 - самый маленький дочерний элемент, 48 сравнивается с 5. Узел 5 меньше 48, поэтому два узла меняются местами.

Наконец, сравниваются 11 и 6. Узел 6 - самый маленький дочерний элемент, поэтому он по сравнению с 48. Узел 48 больше; поэтому два узла меняются местами. Узлу 48 больше нечего сравнивать. Min-Heap снова достигается после удаления корневого узла.

Если вам понравилось то, что вы прочитали, моя книга Иллюстративное введение в алгоритмы охватывает эту структуру данных и многое другое.