|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2012, 19:58 | #1 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
подсчет уровней в дереве
подсчет уровней в бинарном дереве
Код:
Последний раз редактировалось Madmaxisss; 07.09.2012 в 20:51. |
07.09.2012, 20:36 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
07.09.2012, 20:49 | #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. |
07.09.2012, 20:57 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
07.09.2012, 21:03 | #5 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
|
07.09.2012, 21:07 | #6 | ||
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
А кто сказал, что алгоритм считает уровни?
Как минимум Код:
Код:
Что у вас вообще считается? Сначала погружение влево до тупика, потом выход из рекурсии и погружение вправо через лево и так опять до тупика. Эдак вы просто посчитаете все узлы. но не уровни. По логике еще вот что, Если вы влево уперлись в тупик - вы ничего не увидите, так как сразу погружаетесь вправо, и только из правого тупика вы выводите что-то. Тогда уж надо вывод делать после каждого тупик. Код:
и еще для раздумий - у вас алгоритм идет ЛЕВО_ЛЕВО-ТУПИК-ПРАВ-ЛЕВО-ЛЕВО-ТУПИК-ПРАВО-ЛЕВО-ТУПИК... Подумайте, что вы этим считаете. И вот это не понял Цитата:
я не вижу столько уровней Цитата:
4-4-3-4-4-3. При условии правильной передачи параметров и вывода в обоих местах. При вашем алгоритме вывод только после правого. Будет, без передачи параметров постоянно 1-1-1-1-1-1. Мне видится так код правильнее Код:
и это пройдет...
Последний раз редактировалось grenles; 07.09.2012 в 21:21. |
||
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), т.е только в той итерации которая не порождает новую (то бишь в тупиковой ветви) |
07.09.2012, 21:28 | #8 |
Форумчанин
Регистрация: 12.07.2011
Сообщений: 158
|
(сообщение eoln не заметил) а как тогда подсчитать уровни от узла(корня) tt в моем случае???
Последний раз редактировалось Madmaxisss; 07.09.2012 в 21:31. |
07.09.2012, 21:29 | #9 | |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
Цитата:
Ваш вариант может быть более верный. Считать только самые крайние узлы. Еще раз сформулируй конкретно задачу, что ты хочешь посчитать? Дай точнее определение в твоем понятии - что такое уровень дерева. Условия его определения.
и это пройдет...
Последний раз редактировалось Stilet; 07.09.2012 в 21:54. |
|
07.09.2012, 21:48 | #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 |