AVL tree, insert implementation