平衡二叉树AVL

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

《平衡二叉树AVL》

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

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

 

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

《平衡二叉树AVL》

《平衡二叉树AVL》

 

失衡调整旋转平衡处理

  • 单向右旋(LL)

  • 单向左旋(RR)

  • 先左后右旋转(LR)

  • 先右后左旋转(RL)

《平衡二叉树AVL》

《平衡二叉树AVL》

《平衡二叉树AVL》

《平衡二叉树AVL》

 

    原文作者:算法小白
    原文地址: https://www.cnblogs.com/tianqizhi/p/9114060.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞