LINUX.ORG.RU

рекурсивная => нерекурсивная реализация

 


1

4

любая рекурсия может быть привращена в итеративную запись, правильно? (тезис Черча)

подскажите алгоритм, который умеет символьно производить такую операцию, например для языков Java/C/C++ ? Может кто-то уже налабал готовый тул?

причина вопроса в том, что некоторые вещи интуитивно записывать именно в рекурсивной форме, а в указанных языках рекурсией пользоваться небезопасно (= нельзя)

ps, наверное такую ересь сейчас ляпнул xD Если б такой тул существовал, создатели этих языков давно бы уже бы его туда запилили, они ж не школьники как ТС

★★★★☆

Последнее исправление: maxcom (всего исправлений: 2)

Очень много рекурсивных алгоритмов можно заменить на алгоритмы с явным использованием такой структуры данных как стек.

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

Не «очень много», а вообще все, какие только могут быть.

anonymous
()
Ответ на: комментарий от BattleCoder

Ну так рекурсия — это и есть генерация стека, по сути. Вопрос то как раз в том и заключается, чтобы обойтись без него

nuboquest
()
Ответ на: комментарий от nuboquest

Ну одно дело эксплуатация стека вызовов функций - вызов функции может оказаться достаточно дорогой операцией - а другое дело - жонглирование указателем стека - это обычно дешевле. И за переполнением проще следить.

BattleCoder ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.