Hi
Would it not be easier to understand if one solves the non recursive IOT with parents pointers in this way:
n = FindMinimum(root) print n while (s=FindSuccessor(n)) print s
where FindSuccessor(node*) is the solution to 10.11. Not that the proposed solution isn’t interesting, but it is not the easiest algorithm to read through, also it would motivate the reuse of 10.11.