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

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

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

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

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

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

Связь с интернетом - C++
Добрый день. Решил перебраться с Сишника на WEB-программирование. Но для того что бы лучше понять что оно из себя представляет хочу...

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

Связь списков - C++
Доброго времени суток, В процессе решения задачи, встретилась проблема: есть структура struct TStruct { std::string *...

C++ связь символов ? - C++
Скажите как узнать когда и в какую строку вставлять тот или другую функцию и символы ?

Связь по TCP - C++
Здравствуйте , уважаемые программисты. Я начинающий программист и моя задача состоит в том, чтобы обеспечить связь сервера на котором...

Связь массивов и указателей - C++
Здравствуйте! Помогите разобраться пожалуйста! Вот когда я определяю одномерный массив Type mass; Что происходит? ...

сортировка и связь массивов - C++
доброго времени суток. проблема следующая: есть массив, скажем array1 = {1.3,0.5,5.7,0.9}; нужно создать еще один массив в котором...

Связь нескольких форм - C++
Добрый вечер, народ. Я столкнулся с такой проблемой, как связка форм в С++. Я писал на дельфи, там намного легче с этим вопросом,...

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

Связь между 2 классами - C++
Есть 2 класса: Class A { private: B** arrayB;/нужно раньше объявить класс И ... }; A* Object

Связь классов и методов - C++
Помогите понять в чём проблема,в классе TTopic создал метод типа другого класса,а компилятор на это ругается,что не так? #include...

Связь С++ с программой на ассемблере - C++
Помогите пожалуйста! Не удается создать связь Borland C++ v5.02 с программой на ассемблере через стек. при удалении строк с вызовом...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
303 / 274 / 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;
            }
        }
    }
}
Yandex
Объявления
10.05.2013, 23:07     Дерево. Поуровневая связь
Ответ Создать тему
Опции темы

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