How to convert a recursive function to use a stack?
问题 Suppose that I have a tree to traverse using a Depth First Search, and that my algorithm for traversing it looks something like this: algorithm search(NODE): doSomethingWith(NODE) for each node CHILD connected to NODE: search(CHILD) Now in many languages there is a maximum depth to recursion, for example if the depth of recursion is over a certain limit, then the procedure will crash with a stack overflow. How can this function be implemented without the recursion, and instead with a stack?