AVL Trees
invented by Adelson-Velskii and Landis.
An AVL tree is a binary tree such that:
if it’s non-empty then its subtrees TL and TR satisfy
| height(TL - height(TR) | ? 1
and TL and TR are also AVL trees.
An AVL search tree is an AVL tree that is also a BST