Предположим, что у меня есть дерево для прохождения с использованием глубины первого поиска и что мой алгоритм для перемещения выглядит примерно так:
algorithm search(NODE):
doSomethingWith(NODE)
for each node CHILD connected to NODE:
search(CHILD)
Теперь на многих языках существует максимальная глубина для рекурсии, например, если глубина рекурсии превышает определенный предел, тогда процедура завершится с переполнением стека.
Как можно реализовать эту функцию без рекурсии, а не с помощью стека? Во многих случаях существует множество локальных переменных; где они могут быть сохранены?