Бинарное Дерево.сумма Ключей В Узлах.

Тема в разделе "Свободное общение", создана пользователем Tony7161, 18 янв 2012.

  1. Tony7161

    Tony7161 Гость

    Здравствуйте.Столкнулся с такой проблемой.Дано дерево и определение "путь".Под "путем" понимается сумма ключей в узлах от корня до узла без сыновей.Например
    5
    / \
    8 9
    / \ \
    3 2 6
    1 путь 5+8+3=16
    2 путь 5+8+2=15
    3 путь 5+9+6=20
    требуется написать псевдокод для рекурсивного алгоритма.Функция получает дерево и некоторую сумму и возвращает true если в дереве есть путь равный этой сумме или false если такого пути нет.Буду очень благодарен за теоретическое обьяснение решения этой задачи.
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    ну поиск в глубину используй :)

    Код (Text):
    f(tree(E,empty,empty),RS,S):-
    S = RS + E, !.
    f(tree(E,L,_),RS,S):-
    TS = RS + E,
    f( L, TS, S ).
    f(tree(E,_,R),RS,S):-
    TS = RS + E,
    f( R, TS, S ).
    не проверял, на прологе как-то так.
     
Загрузка...
Похожие Темы - Бинарное Дерево сумма
  1. Maestresa
    Ответов:
    2
    Просмотров:
    1.667
  2. newslayer
    Ответов:
    0
    Просмотров:
    1.114
  3. European
    Ответов:
    0
    Просмотров:
    2.069
  4. Hanja
    Ответов:
    0
    Просмотров:
    1.034
  5. MrSpoon
    Ответов:
    0
    Просмотров:
    1.055

Поделиться этой страницей