数据结构:AVL平衡树(c版本)
AVL树呢,是平衡树中一个非常经典的例子。因为普通的查找树在插入和删除的过程有可能会产生树的一端子树高度比另一边大很多的情况,也就是所谓的退化为链表(查找是一个一个节点去找),降低了查找的效率。
AVL平衡树通过一系列旋转的方式让左子树和右子树的高度相差不大(<=1),这样搜索的效率将会维持在较好的水平。
方法就是当插入一个节点之后,
更新父节点的高度,判断父节点的左右子树高度差是否为2,若是,进行相应旋转操作(4种)来降低左右子树高度差。若不是,判断父节点的父的左右子树高度差是否为2,以此类推,直到