平衡树、AVL树

平衡树

平衡树有AVL树、红黑树、2-3树、2-3-4树


AVL树

AVL树是最早的一种平衡树,它以发明者的名字命名。

特征

在AVL树中节点的左子树和右子树的高度差不会大于1

实现

在AVL树中每个节点都存储着一个额外的数据,它的左子树和右子树的高度差,这个差值不能大于1。
插入一个元素后,检查该元素所在的最低子树的根,如果它的子节点的高度相差大于1,执行一次或两次旋转使它们的高度相等;然后接着检查上面的节点,必要时均衡高度;这个检测一直向上,直到根为止。

效率

AVL树查找的时间复杂度为O(logN),因为树一定是平衡的。但是,由于插入或删除一个节点时需要扫描两趟,一次向下查找插入点,一次向上平衡树,AVL树不如红黑树效率高,也不如红黑树常用。

猜你喜欢

转载自www.cnblogs.com/Mike_Chang/p/10215139.html