![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
![]()
подсчет уровней в бинарном дереве
Код:
Последний раз редактировалось Madmaxisss; 07.09.2012 в 20:51. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
![]() Код:
>>4>>4>>3>>4>>4>>3 а получается: >>4>>5>>5>>4>>4>>5>>6>>6>>5>>5>>3 Последний раз редактировалось Madmaxisss; 07.09.2012 в 20:54. |
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]()
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
![]() |
![]() |
![]() |
![]() |
#6 | ||
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]()
А кто сказал, что алгоритм считает уровни?
Как минимум Код:
Код:
Что у вас вообще считается? Сначала погружение влево до тупика, потом выход из рекурсии и погружение вправо через лево и так опять до тупика. Эдак вы просто посчитаете все узлы. но не уровни. По логике еще вот что, Если вы влево уперлись в тупик - вы ничего не увидите, так как сразу погружаетесь вправо, и только из правого тупика вы выводите что-то. Тогда уж надо вывод делать после каждого тупик. Код:
и еще для раздумий - у вас алгоритм идет ЛЕВО_ЛЕВО-ТУПИК-ПРАВ-ЛЕВО-ЛЕВО-ТУПИК-ПРАВО-ЛЕВО-ТУПИК... Подумайте, что вы этим считаете. И вот это не понял Цитата:
я не вижу столько уровней Цитата:
4-4-3-4-4-3. При условии правильной передачи параметров и вывода в обоих местах. При вашем алгоритме вывод только после правого. Будет, без передачи параметров постоянно 1-1-1-1-1-1. Мне видится так код правильнее Код:
и это пройдет...
Последний раз редактировалось grenles; 07.09.2012 в 21:21. |
||
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
Без отладки трудно сказать (а код для построения дерева писать лень), но примерно такие изменения (ИМХО, конечно, могу ошибаться):
1) убрать inc(kk); - иначе в узлах где два листа дублироваться будет 2) вызов процедуры изменить на PRO_URO(tt^.pll,kk+1); и PRO_URO(tt^.prr,kk+1); соответственно. 3) write('>>',kk); делать после проверки if (tt^.pll=nil) and (tt^.prr=nil), т.е только в той итерации которая не порождает новую (то бишь в тупиковой ветви) |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
![]()
(сообщение eoln не заметил) а как тогда подсчитать уровни от узла(корня) tt в моем случае???
Последний раз редактировалось Madmaxisss; 07.09.2012 в 21:31. |
![]() |
![]() |
![]() |
#9 | |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
![]() Цитата:
Ваш вариант может быть более верный. Считать только самые крайние узлы. Еще раз сформулируй конкретно задачу, что ты хочешь посчитать? Дай точнее определение в твоем понятии - что такое уровень дерева. Условия его определения.
и это пройдет...
Последний раз редактировалось Stilet; 07.09.2012 в 21:54. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
![]()
по идее я упростил задачу))) ну вообще задача стоит следующая: делается обход дерева и от узла(корня) tt до ветки нужно занести в дерево значения kk (красным цветом).
Последний раз редактировалось Madmaxisss; 07.09.2012 в 21:55. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Принцип загрузки игровых уровней | murzilka6002 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 27.04.2012 14:56 |
Расчет уровней в бинарном дереве | holi10 | Общие вопросы C/C++ | 0 | 01.06.2011 18:22 |
Задать свойства уровней | Polotenchik | Microsoft Office Word | 2 | 25.05.2010 14:44 |