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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
dimkaok
 Аватар для dimkaok
1 / 1 / 0
Регистрация: 06.03.2013
Сообщений: 128
13.05.2013, 13:26     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #1
Есть бинарное дерево:
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);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2013, 13:26     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:)
Посмотрите здесь:

C++ Разработать программу работы с бинарным деревом
Составить программу, которая находит минимальный элемент и все элементы, расположение в одном ряду и в одном столбце с минимальным меняет на минимальн C++
C++ Помогите кто может заделать задачку с бинарным деревом...
C++ Написать рекурсивную функцию, которая вначале печатает все отрицательные числа, а затем все положительные числа
Написать функцию, которая удаляет все лишние пробелы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.05.2013, 14:49     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #2
Не самая лучшая реализация, но всё же лучше чем ничего:
Дерево. Поуровневая связь
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
13.05.2013, 15:39     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #3
не понятно, как это делать, имея только right, left? так вы просто зациклите дерево и превратите его в бесполезный расход памяти...
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.05.2013, 15:54     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #4
salam, есть ещё и указатель *level на слудующу структуру текущего уровня.
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
13.05.2013, 15:57     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #5
поясните тогда механизм связи... что значит в вашем понимании "связать все узлы на одном уровне"
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
13.05.2013, 15:59     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #6
Цитата Сообщение от dimkaok Посмотреть сообщение
которая свяжет все узлы на одном уровне:
Господа, дерево - ациклический связанный граф.
Если вы добавите дугу в дереве на 1 уровне между вершинами, вы гарантированно получите цикл и эта структура перестанет быть деревом!!!
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
13.05.2013, 16:10     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #7
Ternsip, никакого цикла не будет. Обход, добавление узла и т.д. - всё будет работать по прежнему (ни кто не заставляет использовать этот дополнительный указатель для типичных для дерева функций).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 16:26     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:)
Еще ссылки по теме:

Написать функцию которая заменяет все буквы в строке на '*',а цифры оставляет как есть. C++
C++ Написать рекурсивную функцию, которая выводит все натуральные числа из отрезка
Бесконечный цикл при работе с бинарным деревом C++

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

Или воспользуйтесь поиском по форуму:
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
13.05.2013, 16:26     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:) #8
xtorne21st, странно звучит, ну я придерживаюсь максимальной абстракции, так что связать узлы = добавить ребро в граф, в моём понимании.

Добавлено через 3 минуты
xtorne21st, само собой, всё будет работать, на произвольном графе dfs тоже работает, например. Я говорил, что это не дерево буде, в таком случае.
Yandex
Объявления
13.05.2013, 16:26     Задача с бинарным деревом (написать функцию, которая свяжет все узлы на одном уровне:)
Ответ Создать тему
Опции темы

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