关于AVL树的思考

Posted lector

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于AVL树的思考相关的知识,希望对你有一定的参考价值。

  AVL树即平衡二叉树,每个结点有一个平衡因子,即左子树高度减去右子树高。每插入一个结点时,从根部开始按二叉排序树的方法,与节点不断比较,按大小向左右子树插入。在与最后的节点比较后插入时,若有兄弟节点,说明树的高度没有变,此时依然平衡;若没有,则小范围内树高改变了,需回溯,依次更改祖先的平衡因子,若遇到有平衡因子失衡,则,调整,使其与插入之前高度一致,以保证平衡,若未失衡,且平衡因子不变,说明该子树高度未变,停止回溯。——简而言之就是插入后从底开始看有没有影响树高,小树高可能影响大树高,若无波澜则不变,若有波澜则看是否失衡,失衡调整结束,仅仅只是波澜则继续向上看波澜。

  对于删除,删除一个结点与插入相似,调整祖先平衡因子,遇到波澜向上看波澜,判断是否要调整,若无波澜结束。

  调整就是两种(四种)情况,相关解释很多。

以上是关于关于AVL树的思考的主要内容,如果未能解决你的问题,请参考以下文章

AVL树和splay树的区别

AVL树(动图详解)

❤️数据结构入门❤️(2 - 2)- AVL 树

关于平衡二叉树的核心算法--旋转

AVL树

AVL树