Форум программистов, компьютерный форум CyberForum.ru

Иерархическое дерево. Начало пути - C++

Восстановить пароль Регистрация
 
gameon
Сообщений: n/a
10.03.2013, 10:43     Иерархическое дерево. Начало пути #1
Здравствуйте!!! Я перерыл много учебников и форумов и везде пишут о бинарных деревьях. В них я более менее разобрался, а вот как создать дерево, в котором может быть более 2 сыновей. У меня задание: написать программу, определяющую является ли узел i предком узла j. Программа у пользователя запрашивает узлы дерева в порядке прямого обхода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2013, 10:43     Иерархическое дерево. Начало пути
Посмотрите здесь:

C++ Начало
C++ Начало Си++
C++ Начало пути
C++ Начало программирования
Начало профессионального пути C++
Начало пути прогера C++
C++ Дерево, бинарное дерево
C++ Начало

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
14.03.2013, 14:06     Иерархическое дерево. Начало пути #2
Цитата Сообщение от gameon Посмотреть сообщение
а вот как создать дерево, в котором может быть более 2 сыновей
Хранить не пару указателей на сыновей, а массив оных. Плюс для данной задачи не помешает хранить в узле также указатель на родительский узел. Тогда алгоритм определения такой. Идём из узла j (предполагаем, что его позиция известна) вверх по иерархии (через упомянутый мной указатель на родительский узел) и сравниваем узел, в котором оказались, с узлом i. Если совпали - говорим "является". Если таким макаром пришли в корень, и он не совпадает с узлом i - говорим "не является".
Только вот в вашем задании ничего не говорится о том, что должно быть более двух сыновей. Алгоритм подходит и для бинарного дерева, и для дерева с произвольным количеством потомков. Главное - иметь указатель на родителя в узле.
Yandex
Объявления
14.03.2013, 14:06     Иерархическое дерево. Начало пути
Ответ Создать тему
Опции темы

Текущее время: 07:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru