Suppose you have just one function being called recursively. (2-function scenario is similar.) Say it has 5 parameters. Create a struct named FRAME (having 5 fields.)
Maintain a stack holding the Frame instances. Each time the recursive algorithm adds to the call stack, we add to our stack too.
wiki page on inorder tree walk has very concise recursive/iterative algos.