Нахождение последнего элемента двоичной кучи

Я впервые участвую в переполнении data-structures стека.

Да, приведенный выше binary-heap ответ Зака ​​Скривены (боже, я data-structures не знаю, как правильно относиться binary-trees к другим людям, извините) правильный. Я algorithms хочу добавить упрощенный binary-heap способ, если нам дано количество binary-trees узлов.

Основная идея:

Учитывая algorithm-design количество узлов N в этом algorithm-design полном двоичном дереве, выполните binary-trees вычисление "N% 2" и поместите binary-tree результаты в стек. Продолжайте binary-tree вычисление, пока N == 1. Затем algorithm вытяните результаты. Результат algorithms 1 означает право, 0 означает data-structures лево. Последовательность data-structure - это путь от корня до целевой binary-tree позиции.

Пример:

В дереве теперь algorithm-design 10 узлов, я хочу вставить binary-trees еще один узел в позицию 11. Как algorithms его маршрутизировать?

11 % 2 = 1  --> right    (the quotient is 5, and push right into stack)
 5 % 2 = 1  --> right    (the quotient is 2, and push right into stack)
 2 % 2 = 0  --> left     (the quotient is 1, and push left into stack. End)

Затем binary-tree вставьте стек: влево -> вправо algorithm-design -> вправо. Это путь от корня.

algorithm

data-structures

binary-tree

binary-heap

2022-07-25T14:02:25+00:00
Вопросы с похожей тематикой, как у вопроса:

Нахождение последнего элемента двоичной кучи