Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
element_1417
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 5
1

Рекурсивные деревья

27.04.2012, 15:21. Просмотров 692. Ответов 2
Метки нет (Все метки)

День добрый.
Очень нужна помощь в решении задачи:

Найти все поддеревья, структура которых совпадает с заданной.

Ввод/Создание/Вывод/...дерева написать труда не составило.
С рекурсией и прочим тоже никаких вопросов.
А вот с основным заданием возникла проблема.
Как я понимаю, нужно сравнивать количество сыновей введённой структуры и исходного дерева, перемещаясь сверху-вниз по исходному. Но элементарно не могу написать код. Но элементарно не могу это запрограммировать.
Может быть, чем поможете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2012, 15:21
Ответы с готовыми решениями:

Рекурсивные Деревья
Прошу помощи. Написал код для бинарных деревьев, тут же всунул дерево...

Рекурсивные и не рекурсивные функции (вычисление суммы всех натуральных чисел от 1 до n)
Всем привет. Заранее извиняюсь за мб глупые вопросы и навязчивость. Но у меня...

Рекурсивные функции
Всем привет. Ребят, помогите. Задание: с помощью рекурсивной функции вычислить...

Рекурсивные функции
Написать рекурсивную функцию для вычисления максимального элемента массива из n...

Рекурсивные функции
Плиз, помогите. Ошибку выдает, а исправить как - непонятно... Пока не очень...

2
element_1417
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 5
04.05.2012, 21:54  [ТС] 2
Неужели никто ничем помочь не может?
0
rst256
0 / 0 / 0
Регистрация: 16.04.2016
Сообщений: 3
18.03.2017, 19:48 3
А в чем конкретно проблема то, если
Цитата Сообщение от element_1417 Посмотреть сообщение
С рекурсией и прочим тоже никаких вопросов.
?
Просто сделай внутри рекурсивного обхода узлов дерева сравнение его узлов с эталоном, если будет несовпадение на корневом узле эталона делай тогда сравнение узла с корнем эталона. Если будет совпадение и узел эталона корневой значит под-узел найден.
Вот пример кода на си:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int check_eq_root(tree_node * current_node, tree_node * match_node, tree_node * match_node_root){
    if( current_node->value==match_node->value && 
        check_eq(current_node->left, match_node->left, match_node_root) &&
        check_eq(current_node->rigth, match_node->rigth, match_node_root) &&
        . . .
        check_eq(current_node->some, match_node->some, match_node_root) 
    ){ // если текущий узел и его подузлы соответствуют текущему узлу эталона, тогда ...
        if( match_node==match_node_root ) // если при этом текущий узел эталона корневой, тогда ... 
            printf("node found: %p\n", current_node); // поддерево найдено. (возвр. значение при этом роли не играет).
        return 1; 
    }else{
        if( match_node!=match_node_root ) // если текущий узел эталона НЕ корневой, тогда ... 
            check_eq(current_node, match_node_root, match_node_root); // сравниваем текущий узел с корневым эталона
        return 0; // в не зависимости от сравнения с корневым эталона результат 0 (false).
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2017, 19:48

рекурсивные классы
Доброго времени суток. Скажите пожалуйста, можно ли при написании класса...

Рекурсивные функции
Мне нужно решить задачу с факториалом с использованием рекурсивной функции.Я...

рекурсивные функции
Дано натуральные числа n,m ; найти НОД(наибольший общий делитель) ....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru