Inorder tree traversal: Which definition is correct?

Forget the definitions, it's so much easier to just apply the algorithm:

void inOrderPrint(Node root)
{
  if (root.left != null) inOrderPrint(root.left);
  print(root.name);
  if (root.right != null) inOrderPrint(root.right);
}

It's just three lines. Rearrange the order for pre- and post- order.


In my bad attempt at the drawing here's the order that shows how they should be picked. alt text

pretty much pick the node that is directly above the line being drawn,.