>Are you sure that dir is guaranteed to be 1 or 0?
Quite.

>In Diagram 8 (Deletion), you say remove 5, but you proceed to remove the 7.
I sure did, didn't I? I imagine that would cause some confusion, and probably some really strange code for those that followed the diagrams exactly.

>Also, it'd be nice if you provided an example where both of the subtrees of the node to be deleted had a left and a right subtree, to demonstrate what happens then.
Good idea.

>BTW, does this apply to C++ too?
It does indeed.