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

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

Войти
Регистрация
Восстановить пароль
 
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

Дерево. Поуровневая связь - C++

10.05.2013, 15:17. Просмотров 791. Ответов 1
Метки нет (Все метки)

Имеется структура следующего вида:
C++
1
2
3
4
5
6
7
struct BinTree
{
    int key;
    Node* left;
    Node* right;
    Node* level;
};
Нужно написать функцию которая осуществляет связь при помощи указателя level на стуктуру такого же типа по схеме (за ранее подразумевается что указатели level = 0):
0
Миниатюры
Дерево. Поуровневая связь  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 15:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дерево. Поуровневая связь (C++):

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

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

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

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

Дерево дерево, странное дерево - C++
Нужна помощь в построении дерева. Задание таково: Вершина дерева содержит N целых значений и два указателя на потомков. Запись значений...

Дерево, бинарное дерево - C++
Читаю про дерево и не до конца понимаю, а точнее понимаю, но вопрос в том, правильно ли я понимаю, надеюсь вы мне подскажите. Вот есть...

1
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
10.05.2013, 23:07  [ТС] #2
Если брать за пример рисунок, то со связью 1->3 и 5->7 можно осуществить легко при помощи рекурсивной функции. Но вот как связать 3->5 для меня проблема.

Добавлено через 4 часа 55 минут
Мне не обязательно показывать готовое решение , достаточно поделится своими соображениями.

Добавлено через 2 часа 51 минуту
Метод топора:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void getLevel(Node* n, int lvl, std::map<Node*, int>& mp)
{
    if (!n)
    {
        return;
    }
 
    getLevel(n->left, lvl + 1, mp);
    int& l = mp[n];
    l = lvl;
    getLevel(n->right, lvl + 1, mp);
}
 
void linkSameLevel(Node* t)
{
    std::map<Node*, int> link;
    getLevel(t, 0, link);
    
    for (std::map<Node*, int>::iterator i = link.begin(); i != link.end(); ++i)
    {
        std::map<Node*, int>::iterator j = link.begin();
        for ( ++j; j != link.end(); ++j)
        {
            if (i->second == j->second)
            {
                i->first->level = j->first;
                i = j;
            }
        }
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2013, 23:07
Привет! Вот еще темы с ответами:

связь CPU-314SC и WINDOWS где посмотреть обмен данными и вообще связь - Контроллеры PLC
между двумя системами.

Создать любые две таблицы, установить между ними связь, и с помощью запроса показать эту связь - SQL Server
Короче такое задание. Создать любые две таблицы, установить между ними связь и с помощью запроса показать эту связь. Как это сделать?...

Сформировать дерево Т и определить число вхождений параметра Е в дерево Т - Блок схема - Turbo Pascal
Сформировать дерево Т и определить число вхождений параметра Е в дерево Т. Вот решение задачи, народ, помогите, кто может, составить...

Бинарное дерево: как происходит добавления элемента в дерево с двумя параметрами - C#
Здравствуйте! Прошу помощи у опытных программистов...)))) Есть класс дерево: class class1 { public class Tree ...


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

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

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