avl tree with visualization