Нахождение последнего элемента двоичной кучи
Я впервые участвую в переполнении 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
Нахождение последнего элемента двоичной кучи
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.