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

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

Войти
Регистрация
Восстановить пароль
 
TimoshkaXXX
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 49
#1

Как можно посчитать ширину дерева? - C++

30.04.2009, 00:28. Просмотров 926. Ответов 6
Метки нет (Все метки)

Товарищи!!!!!
подскажите пожалуйста как можно посчитать ширину дерева!!!?????
(под шириной дерева понимается максимальное количество елементов, находящихся на одном уровне)
очень надо!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2009, 00:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно посчитать ширину дерева? (C++):

Обход дерева в ширину - C++
Кто нибудь может скинуть мне программу обхода дерева в ширину?

Обход дерева в ширину - C++
имеется такой кусок программы. требуется обойти дерево в ширину. библиотека #include <queue> подключена void...

Как можно совершить обход двоичного дерева нерекурсивно - C++
Доброго времени суток. Хочу поинтересоваться: как можно совершить обход двоичного дерева нерекурсивно(!!!), желательно с примерами или...

Алгоритмы поиска кратчайших путей в ширину и двунаправленный в ширину - C++
Реализовать алгоритм поиска кратчайшего пути. Двунаправленный поиск в ширину. Вот есть 2 алгоритма поиска в ширину. ...

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

Какой функцией можно посчитать количество данных слов в строке? - C++
Несколько вопросов по строкам и char 1. Какой функцией можно посчитать кол-во данных слов с строке? 2. Какой функцией можно вырезать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
yuroc
0 / 0 / 0
Регистрация: 13.04.2009
Сообщений: 3
08.05.2009, 20:56 #2
Циклом пробежатся по каждому элементу дерева и определить максимальный уровень разветвлений
0
Evg
Эксперт CАвтор FAQ
17809 / 6015 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
08.05.2009, 21:28 #3
Обходишь дерево. При заходе в первого ребёнка увеличиваешь счётчик. При возврате от ребёнка к родителю счётчик уменьшаешь. Такми образом счётчик будет означать уровень текущего узла
0
TimoshkaXXX
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 49
08.05.2009, 23:09  [ТС] #4
Цитата Сообщение от Evg Посмотреть сообщение
Обходишь дерево. При заходе в первого ребёнка увеличиваешь счётчик. При возврате от ребёнка к родителю счётчик уменьшаешь. Такми образом счётчик будет означать уровень текущего узла
ну да это вроде понятно, я и сам примерно также рассуждал.
проблема в том, как будут сохраняться значения счетчика, ведь обход дерева - это рекурсивная функция, и если в ее теле объявить этот счетчик, то на каждом шаге рекурсии будет создана новая переменная, которая будет уничтожена вместе с кадром стека для текущего шага рекурсии.
Или нужно сделать обход с помощью цикла, что для меня является достаточно нетривиальной задачей.

Если нетрудно приведите какой нибудь пример рабочего кода или подскажите как разрешить мою проблему!!
Заранее спасибо.
0
Evg
Эксперт CАвтор FAQ
17809 / 6015 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
08.05.2009, 23:16 #5
Номер уровня надо передавать праметром

Ну схематично

C
1
2
3
4
5
6
7
8
void PassNode (Node* node, int level)
{
  Node *son;
 
  son = ....
 
  PassNode (son, level + 1);
}
1
TimoshkaXXX
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 49
08.05.2009, 23:29  [ТС] #6
Спасибо !!!! попробую так сделать!!
если возникнут проблемы, то я к вам обращусь!!!
0
Evg
Эксперт CАвтор FAQ
17809 / 6015 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
08.05.2009, 23:35 #7
Обращайся
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2009, 23:35
Привет! Вот еще темы с ответами:

Запись бинарного дерева в файл и восстановление из него этого дерева - C++
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на структуру с данными, 2 и 3й указатель на...

Написать шаблон бинарного дерева с функцией распечатки дерева - C++
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией распечатки дерева *(+(d,e),c) в виде...

Как увеличить ширину (разрядность) оператора >> ? - C++
Для преобразования типов используется такая конструкция #include <string.h> #include <cstring> #include <iostream> #include...

Как найти ширину фигуры (OPENCV)? - C++
Доброго времени суток. у меня есть код с помощью которого я нахожу контур объекта и его ширину с высотой: for(;;) { ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.05.2009, 23:35
Ответ Создать тему
Опции темы

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