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

phpize

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

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

Adelf

Administrator
Команда форума
Краткость в вопросах - далеко не сестра таланта.

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

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Re: как заменить рекурсию циклами

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

phpize

Новичок
Автор оригинала: Adelf
(пополняя ее в теле цикла, для того чтобы обрабатывать дальше)
Вот ключевая фраза.
Так что можно было сказать и короче ;)

Спасибо.

-~{}~ 08.01.10 12:05:

Автор оригинала: varan
Можно, надо просто организовать хранилище переменных в некоем стеке. Но зачем? Рекурсия лаконичнее и проще для понимания.
Рекурсия плохо реализована в php
http://bugs.php.net/bug.php?id=1901
Циклы стабильнее.
 

Lightning

Трудоголик
Применить очередь или стек, в зависимости от задачи.
Но лучше рекурсию оставить.
А php тут не при чем.
 

Krishna

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

phpize

Новичок
Автор оригинала: zerkms
зачем может понадобиться рекурсия глубиной over 8000?
Ну это уже другой вопрос.

-~{}~ 08.01.10 12:54:

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

zerkms

TDD infected
Команда форума
Ну это уже другой вопрос.
это как раз тот самый вопрос. ты ведь при покупке автомобиля не предъявляешь ему требование, чтобы он умел ездить вверх ногами.
 

phpize

Новичок
Автор оригинала: zerkms
это как раз тот самый вопрос. ты ведь при покупке автомобиля не предъявляешь ему требование, чтобы он умел ездить вверх ногами.
В том то и дело что твой "автомобиль" слишком слабенький для текущей задачи.
 

zerkms

TDD infected
Команда форума
phpize
в том то и дело, что ты так и не рассказал эту "текущую задачу" для которой нужна такая глубина, а попытался увести разговор в сторону. ну так будет пример или где?
 
Сверху