С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gameon
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 1
#1

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

10.03.2013, 10:43. Просмотров 368. Ответов 1
Метки нет (Все метки)

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

Начало пути - C++
Всем привет! :) Решил изучать и писать на языке C++. Есть не большой опыт программирования(Pascal,Dephi). Сразу возникло куча...

Начало профессионального пути - C++
Тему С++ выбрал из-за большей обширности аудитории. Я- среднестатистический школокодер-первокурсник, обучающийся по направлению...

Начало пути прогера - C++
Здравствуйте. Мне 19, перешел на 3 курс по специальности "Компьютерная безопасность". Уже 2 года периодически интересуюсь...

Бинарное поисковое дерево. Максимальные пути - C++
Помогите пожалуйста! Есть задачка: Найти вершины, через которые проходят пути максимальной длины, и удалить (правым удалением) самую...

По описанию пути к кладу определить точные координаты клада, считая, что начало координат находится в начале - C++
Уважаемые форумчане! Никак не могу понять, почему эта программа работает неправильно, в чем ошибка. Задача: Капитан Флинт зарыл...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
14.03.2013, 14:06 #2
Цитата Сообщение от gameon Посмотреть сообщение
а вот как создать дерево, в котором может быть более 2 сыновей
Хранить не пару указателей на сыновей, а массив оных. Плюс для данной задачи не помешает хранить в узле также указатель на родительский узел. Тогда алгоритм определения такой. Идём из узла j (предполагаем, что его позиция известна) вверх по иерархии (через упомянутый мной указатель на родительский узел) и сравниваем узел, в котором оказались, с узлом i. Если совпали - говорим "является". Если таким макаром пришли в корень, и он не совпадает с узлом i - говорим "не является".
Только вот в вашем задании ничего не говорится о том, что должно быть более двух сыновей. Алгоритм подходит и для бинарного дерева, и для дерева с произвольным количеством потомков. Главное - иметь указатель на родителя в узле.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2013, 14:06
Привет! Вот еще темы с ответами:

Дано дерево. Распечатать дерево по уровням - C++
Дано дерево. Распечатать дерево по уровням.

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес - C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n)....

Напишите программу, которая бы читала дерево в формате (а) и затем печатала бы это дерево в формате (б). - C++
Представление дерева: а) Д (Б (А, Ф (В,)), Е (,З (Ж, И))) б) Д Б А Ф ...


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

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

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