![]() |
|
||||||||||
|
|||||
|
.
|
Если каждый раз у нового объекта дергать метод, то думаю, что это не рекурсия. Рекурсия дернет свой же метод (этого же объекта). Короче, при рекурсии в коллстеке периодически появляется один и тот же объект.
|
|
|||||
|
Lorem ipsum
|
Если строго говорить, то ты прав конечно.
Интересно, как такие вызовы называются?
__________________
Поймай яблоко 2! |
|
|||||
|
.
|
Нерекурсивными, по-моему =) Все состояние объекта сохраняется в нем же. Я бы назвал это обходом с помощью очереди. Но сама очередь есть распределенная сущность, состоящая из других объектов, сохраняющихся в обходящих. Короче, нам в любом случае нужна очередь
some nodes must be deferred – stored in some way for later visiting. This is often done via a stack (LIFO) or queue (FIFO). Можно строго подойти к рекурсии: не делай лишних объектов в коллстеке и мы не будем называть твой алгоритм рекурсивным. Не знаю, в общем. Я тоже раньше рекурсию, так же как ты, ассоциировал с вызовами "одинаковых" методов у разных объектов. Но вот задумался немного и пришел в замешательство. Ах, да. Немного пруфов не повредит: Последний раз редактировалось dimarik; 17.03.2015 в 23:11. |
|
|||||
|
Lorem ipsum
|
Вот. Обход дерева, да.
__________________
Поймай яблоко 2! |
|
|||||
|
.
|
Обход дерева может быть рекурсивным или нерекурсивным.
Там еще из типов обходов в глубину есть. Так же простой обход по парентам (не обход всего дерева, если что). А можно навернуть обход по уровням нод (breadth-first, обход всего дерева). Ну и ладно. Пусть все будут здорОвы! =) |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|