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

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

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

Проход в глубину дерева, для определения максимального уровня листа - C++

19.05.2011, 20:09. Просмотров 841. Ответов 0
Метки нет (Все метки)

Доброго времени суток.
Имеется глоб.переменные:
C++
1
2
int max_level(0); //будет хранить максимальный уровень листа для удаления его
Tree *delete_el;  //будет хранить ссылку на удаляемый лист
Также стр-ра дерева:
C++
1
2
3
4
5
6
7
8
9
struct Tree          //элемент дерева
{
    //число,уровень,кол-во сыновей данного элемента
    int number;
    int level;
    int sons;
    //и массив сыновей
    Tree **a_sons;
};
и ф-я:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void output(...)
{
    if(!pointer) return;
    else
    {
        //проход в глубину (рекурсивно)
                 ...
                //определение максимального уровня листа
        if(max_level < pointer->level && pointer->a_sons==0)
        {
            max_level = pointer->level;
            delete_el = pointer;           //запоминание указателя
        }  
        ...
    }
}
Проблема в том, что в условии if(...) ... в рекурсивном вызове ф-ии, значение переменной max_level хоть и присваивается (смотрел в отладке), но потом опять становится равным 0. Как этого избежать, что вообще можно сделать в этом случае...

Добавлено через 1 час 15 минут
ответ прост, передать переменную по ссылке
(сам спросил, сам ответил хд)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2011, 20:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проход в глубину дерева, для определения максимального уровня листа (C++):

Проход от каждого листа к корню - C++
Здравствуйте. Нужно от каждого листа который есть в дереве пройти к корню, и просуммировать путь. 8 6 10 5 7 9 11 ...

Алгоритм Прима для построения максимального дерева - C++
Алгоритм Прима.С++

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

Вызов функции для определения максимального и мин значения в массиве - C++
Выдает ошибку на строках:r = maxima(a ); и k = minima(a); что делать? #include &quot;iostream&quot; using namespace std; int main()...

Хитрый обход дерева в глубину - C++
По условию необходимо обойти дерево так чтобы найти путь max длины не имеющий кратных вершин, приэтом советуют пользоваться алгоритмом с...

Массив. Программа для определения максимального подъема 100-километровой автотрассы. - C++
Здравствуйте! Вот написал программу, но не устраивает меня тем, что нужно выдавать самый длинный подъем, так и есть, но вот как написать от...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 20:09
Привет! Вот еще темы с ответами:

Как сделать шаблон функции для определения максимального расстояния между элементами - C++
Написать программу которая использует шаблон функции для определения максимального расстояния между элементами в наборе в 5 элементов....

Разработать метод-член класса для определения минимального и максимального элементов одномерного динамическо - C++
Помогите!!! разработать метод - член класса для определения минимального и максимального элементов одномерного динамического массива и их...

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

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


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

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

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