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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
#1

Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) - C++

13.05.2013, 13:26. Просмотров 1369. Ответов 7
Метки нет (Все метки)

Есть бинарное дерево:
C++
1
2
3
4
5
6
7
struct node 
{
int n; // value of node
struct node *left; // left subtree
struct node *right; // right subtree
struct node *level; // level pointer (node “to the right”)
}
Поля инициализированы нулями. Нужно написать функцию, которая свяжет все узлы на одном уровне:
C++
1
void linkSameLevel(struct node *t);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2013, 13:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) (C++):

Напишите функцию которая соединит все узлы на том же уровне в дереве - C++
Есть задачка по дереву: Напишите функцию , которая соединит все узлы на том же уровне в дереве ( не только из примера , но любое данное...

Сортировка бинарным деревом - C++
Получить число n на ввод; сделать сортировку бинарным деревом и построить дерево графически

Отобразить бинарным деревом предложение - C++
Ребят прошу вашей помощи, буду очень признателен. Отобразить с помощью бинарного дерева предложение: "Белый снег покрывает черную землю"....

Разработать программу работы с бинарным деревом - C++
Разработать программу работы с бинарным деревом. Программа должна содержать следующие процедуры, вызываемые из меню: - построение...

Разработать программу работы с бинарным деревом - C++
Народ, прошу помощи в решении нескольких заданий, в противном случае, не видать мне сессии.... :cry: Задание №1 1)Упорядочить...

Бесконечный цикл при работе с бинарным деревом - C++
Добрый вечер. Помогите разобраться на третьем обьекте в бинарном дереве ухожу в бесконечный цикл. Где я допустил ошибку ? #include...

7
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.05.2013, 14:49 #2
Не самая лучшая реализация, но всё же лучше чем ничего:
Дерево. Поуровневая связь
1
salam
171 / 152 / 16
Регистрация: 10.07.2012
Сообщений: 751
13.05.2013, 15:39 #3
не понятно, как это делать, имея только right, left? так вы просто зациклите дерево и превратите его в бесполезный расход памяти...
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.05.2013, 15:54 #4
salam, есть ещё и указатель *level на слудующу структуру текущего уровня.
0
salam
171 / 152 / 16
Регистрация: 10.07.2012
Сообщений: 751
13.05.2013, 15:57 #5
поясните тогда механизм связи... что значит в вашем понимании "связать все узлы на одном уровне"
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
13.05.2013, 15:59 #6
Цитата Сообщение от dimkaok Посмотреть сообщение
которая свяжет все узлы на одном уровне:
Господа, дерево - ациклический связанный граф.
Если вы добавите дугу в дереве на 1 уровне между вершинами, вы гарантированно получите цикл и эта структура перестанет быть деревом!!!
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.05.2013, 16:10 #7
Ternsip, никакого цикла не будет. Обход, добавление узла и т.д. - всё будет работать по прежнему (ни кто не заставляет использовать этот дополнительный указатель для типичных для дерева функций).
0
Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
13.05.2013, 16:26 #8
xtorne21st, странно звучит, ну я придерживаюсь максимальной абстракции, так что связать узлы = добавить ребро в граф, в моём понимании.

Добавлено через 3 минуты
xtorne21st, само собой, всё будет работать, на произвольном графе dfs тоже работает, например. Я говорил, что это не дерево буде, в таком случае.
1
13.05.2013, 16:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 16:26
Привет! Вот еще темы с ответами:

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

Написать функцию, которая удаляет все лишние пробелы - C++
Доброго дня суток. Помогите пожалуйста.. Нужно написать функцию, которая удаляет все лишние пробелы, т. е. из нескольких подряд идущих...

Написать функцию, которая выводит все цифры последовательности до заданной - C++
Задача: Написать функцию, которая выводит все цифры последовательности до k – ой. Использовать функцию, определяющую количество цифр в...

Написать рекурсивную функцию, которая вначале печатает все отрицательные числа, а затем все положительные числа - C++
Дана последовательность ненулевых чисел, в конце которой следует 0. Написать рекурсивную функцию, которая вначале печатает все...


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

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

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