Двоичное дерево T является полубалансным, если для каждого узла m в T:
R (м) / 2 <= L (м) <= 2 * R (м), </p>
где L (m) - количество узлов в левом поддереве m, а R (m) - количество узлов в правом поддереве m.
(a) Напишите рекуррентное соотношение для подсчета числа полубалансных бинарных деревьев с N
узлы.
(b) Предоставить алгоритм динамического программирования для вычисления повторения в (a).
Как мне сделать рекуррентное соотношение для этого?
Имеет ли право следующее:
if(node==NULL)
return;
if(given relation is true)
count++
else find for right tree;
find for left tree;
Полагаю, он просит больше о рекуррентном отношении, например, функции или что-то в этом роде .?
Кроме того, как мне решить проблему с помощью динамического программирования? Полагаю, мне не нужно ничего хранить, если я применил приведенный выше фрагмент кода.
Пожалуйста, помогите.