Develop

BTW, are you following a book on this one?  I would typically implement these routines in the `AVLTree` class and treat the nodes as raw structs without payloads.

For that matter, if you were to preallocate the root I wouldn't even have it be an `auto_ptr`, I'd have it be an in-place object.  This saves one allocation while still having the advantages associated with preallocation.