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.