平衡二叉树AVL

平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。

平衡二叉树是在二叉排序树(BST)上引入的(这一点很重要哦)

讨论:BST为什么需要平衡化?平衡二叉树很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了很多。

 

构造二叉平衡树的方法:在插入过程中,采用平衡旋转技术

 

失衡调整旋转平衡处理

  • 单向右旋(LL)

  • 单向左旋(RR)

  • 先左后右旋转(LR)

  • 先右后左旋转(RL)

 

posted @ 2018-05-30 22:48  耐烦不急  阅读(286)  评论(0编辑  收藏  举报