Задать вопрос
kykyryky
@kykyryky

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

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

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

Похожие вопросы