Обычно переполнение стека - это тупо ошибка выхода.
И да, факториал рекурсией вычисляют только мудаки.
Значит, тебе пока не встречались соответствующие задачи. К сожалению, императивные циклы всё таки иногда нужны, и в Haskell их можно реализовать. Добра пожаловать в монады, короче.
А вот восходящий обход от листа к корню - да, обычным while решается
И толку то? В итоге память тоже используется, просто в более явном в виде. С тем же самым успехом можно просто размер стека в потолок выкрутить.
Нет, это не рекурсия.
Recursion (adjective: recursive) occurs when a thing is defined in terms of itself or of its type.
Не несите чушь, количество уровней вообще ни на что не влияет. Вот наколенке накорябанное за 10 минут обход бинарного дерево в четырех разных порядках без рекурсии. (можно и почище было написать, но я просто накорябал что-то рабочее)
И кроме InOrder очень легко модифицируется на n-арность (для не бинарного дерева InOrder неопределен)
https://onecompiler.com/python/3x5sjecpw

IT-юмор
7.1K постов53.2K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору