как заменить рекурсию циклами

  • Автор темы Автор темы phpize
  • Дата начала Дата начала

phpize

Новичок
как заменить рекурсию циклами

Можно ли заменить рекурсию циклами в php?
Если да - как?
 
Краткость в вопросах - далеко не сестра таланта.

Ну какой вопрос такой и ответ:
В общем случае надо "дерево рекурсивных вызовов функции" представить в какой-либо структуре данных и обрабатывать эту структуру циклом(пополняя ее в теле цикла, для того чтобы обрабатывать дальше). Обычно одним из ключевых моментов в этой структуре - текущий уровень вложенности, которая отображает - как глубоко мы в этой искусственной рекурсии.
Реализация зависит от конкретного случая. Для примера просто попробуй циклами распечатать рекурсивное содержимое папки с папками и файлами.
 
Re: как заменить рекурсию циклами

Автор оригинала: phpize
Можно ли заменить рекурсию циклами в php?
Если да - как?
Можно, надо просто организовать хранилище переменных в некоем стеке. Но зачем? Рекурсия лаконичнее и проще для понимания.
 
Автор оригинала: Adelf
(пополняя ее в теле цикла, для того чтобы обрабатывать дальше)
Вот ключевая фраза.
Так что можно было сказать и короче ;)

Спасибо.

-~{}~ 08.01.10 12:05:

Автор оригинала: varan
Можно, надо просто организовать хранилище переменных в некоем стеке. Но зачем? Рекурсия лаконичнее и проще для понимания.
Рекурсия плохо реализована в php
http://bugs.php.net/bug.php?id=1901
Циклы стабильнее.
 
Применить очередь или стек, в зависимости от задачи.
Но лучше рекурсию оставить.
А php тут не при чем.
 
Рекурсия плохо реализована в php
http://bugs.php.net/bug.php?id=1901
Циклы стабильнее.
Дружочик, ты прежде чем авторитетно насрать на похапе ссылку то свою читал?
Кагбе ссылко о баге >10летней давност х.. знает какой музейной версии.
 
Автор оригинала: zerkms
зачем может понадобиться рекурсия глубиной over 8000?
Ну это уже другой вопрос.

-~{}~ 08.01.10 12:54:

Автор оригинала: Krishna
Дружочик, ты прежде чем авторитетно насрать на похапе ссылку то свою читал?
Кагбе ссылко о баге >10летней давност х.. знает какой музейной версии.
Давность то 10-летняя - но вот баги сегодняшние ;)
А php я люблю.
 
Ну это уже другой вопрос.
это как раз тот самый вопрос. ты ведь при покупке автомобиля не предъявляешь ему требование, чтобы он умел ездить вверх ногами.
 
Автор оригинала: zerkms
это как раз тот самый вопрос. ты ведь при покупке автомобиля не предъявляешь ему требование, чтобы он умел ездить вверх ногами.
В том то и дело что твой "автомобиль" слишком слабенький для текущей задачи.
 
phpize
в том то и дело, что ты так и не рассказал эту "текущую задачу" для которой нужна такая глубина, а попытался увести разговор в сторону. ну так будет пример или где?
 
Сверху