LINUX.ORG.RU

SOOOOOOOOOOOS


0

0

Друзья, товарищи, соотечественники... не дайте утонуть студенту в океане знаний... Пиво и FPS не совместимы! Но это я поздно понял:( Нужна прога... помогите кто может.... За рание благодарен.... мыло: kosha@angara.ru Дано двоичное дерево целых чисел, вы должны написать программу, которая вычисляет существует ли путь от корня дерева до его литьев, сумма узлов которого равна определенному чилу. Например, в дереве, заданом ниже, суммы пу-тей следующие: 27, 22, 26 и 18. Двоичные деревья определены во входном файле согласно селдующим правилам: пустое дерево ::= () дерево ::= пустое дерево или (число дерево дерево) Изображенное выше дерево представляется следующим выражением: (5 (4 (11 (7 () ()) (2 () ()) ) ()) (8 (13 () ()) (4 () (1 () ()) ) ) ) Имейте в виду, что листья деревьев имеют вид: (число () () ) Так как пустое дерево не имеет путей от корня до листьев, любой запрос на поиск пути, сумма узлов которого равна определенному числу, должен плучить отрицательный ответ. Входные данные Входной файл состоит из пар число/дерево. Каждая пара состоит из числа и следующего за ним через один или более пробелов двоичного дерева в формате, описанном выше. Все описания деревьев во входном файле будут правильными, но они могут быть разделены на несколько строк и содержать пробелы. Во входном файле будет как минимум одна пара, и ввод заканчивается концом файла. Выходные данные В выходном файле должна быть одна строка для каждой пары (число/дерево) во входном файле. Для каждой пары вы должны напечатать yes если искомый путь существует и no - если нет. Пример входных данных Пример вывода 22 (5(4(11(7()())(2()()))()) (8(13()())(4()(1()())))) 20 (5(4(11(7()())(2()()))()) (8(13()())(4()(1()())))) yes no

anonymous

издалека похоже на мой курсовик -но мой попроще... советую обратиться на ixbt.com -> коференция -> програмирование, там народ спецефичексий сидит! он ск. всего тебе поможет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.