kykyryky
@kykyryky

Как правильно заполнить бинарное дерево?

Есть исходная задача, решаем её, получаем решение и записываем его в корень дерева. После этого к текущую задачу разбиваем на две подзадачи, добавляя к ней по одному условию(условия различны). Получаем две подзадачи - два новых узла. Каждый узел разбивается таким же образом на еще два, в каждом из которых по одной подзадаче, получившейся из предыдущей подзадачи. И так далее.
Как строится, например, дерево поиска я представляю - но там каждый раз мы по условию идем от начала дерева в поиске нужного нам узла, к которому надо прикрепить очередной узел - а тут всё получается прямо на ходу должно строиться.
В общем в мыслях всё просто и понятно, но в реализации запутался. Подскажите идею.
  • Вопрос задан
  • 534 просмотра
Решения вопроса 1
@SilentFl
записывайте текущее значение на возврате из рекурсии: зашли в узел дерева, запустили "левую" подзадачу, запустили "правую", вычислили результат и записали в текущий узел. То есть спускаясь вы задачи решаете путем декомпозиции, а на обратном пути записываете результаты, строя дерево.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы