Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.137.243] |
|
Сообщ.
#1
,
|
|
|
Помогите пожалуйста!)
Имеется двоичное дерево, нужно определить самую короткую ветвь(ветви). Понимаю, что через рекурсию, но проблемы с реализацией. |
Сообщ.
#2
,
|
|
|
function depth(node):Integer; begin if node = nil then result = 0 else result = 1 + min(depth(node.left), depth(node.right)); end; |
Сообщ.
#3
,
|
|
|
MBo, а что за "1" - непорядок, ящетаю!
|
Сообщ.
#4
,
|
|
|
Да и со скобками проблема
|
Сообщ.
#5
,
|
|
|
JoeUser
Почему? |
Сообщ.
#6
,
|
|
|
MBo
А можно как-нибудь сделать, чтобы элементы этой короткой ветви печатались, а не длина? |
Сообщ.
#7
,
|
|
|
Цитата MBo @ JoeUser Почему? А почему не 2 или 3? |
Сообщ.
#8
,
|
|
|
Цитата JoeUser @ А почему не 2 или 3? Потому что спуск на один уровень увеличивает глубину на единицу Добавлено Dobro_77 Сначала найти длину этой самой короткой ветви, потом ещё раз сделать обход - как дошли до nil на найденной глубине - остановились, и возвращаемся до корня, записывая узлы по пути |