Расчет баланса узлов дерева AVL по балансам дочерних узлов
Скажем, у меня есть дерево AVL, такое, что его узлы хранят свой собственный коэффициент баланса как одно целое число.
Как я могу вычислить коэффициент баланса узла N, если я знаю коэффициент баланса как его левого, так и правого дочернего элемента.
Обратите внимание, что у меня нет rHeight и lHeight, поэтому bal(N) = lHeight - rHeight не вариант.
1 ответ
Решение
Короткий ответ - вы не можете.
Длинный ответ:
Рассмотрим эти два дерева:
A
/ \
B C A
/ \ / \ / \
D E F G B C
/ \ / \ / \ / \
H I J K L M N O
У них одинаковый коэффициент баланса, но они не одинаковой высоты.
Таким образом, если у вас есть только коэффициент баланса ребенка, вы не знаете, как высоко это поддерево, поэтому вы не можете использовать только это значение для расчета коэффициента баланса родителя.