码迷,mamicode.com
首页 > 其他好文 > 详细

关于AVL树的思考

时间:2018-12-30 12:07:34      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:开始   回溯   说明   大小   插入   二叉排序树   结束   思考   相关   

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

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

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

关于AVL树的思考

标签:开始   回溯   说明   大小   插入   二叉排序树   结束   思考   相关   

原文地址:https://www.cnblogs.com/lector/p/10198916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!