AVL树的插入和删除操作是它很普遍的操作,我从一些文章上看到都说它的删除操作机及其复杂,但是这个世界上难道还有比毁灭更简单的事情吗?avl删除的善后处理真的比插入一个节点还要复杂吗?经过我的百般蹂躏,avl树终于向我展示了冰山的下面到底隐藏着什么。
avl树要求的平衡条件是左右子树的高度差不能大于1,于是为了跟踪平衡性,引入了一个平衡因子的概念,平衡因子就是左右子树的高度差,但是如果一个节点 X有一个左孩子而没有右孩子,而且其做孩子没有任何子树,那么这个左孩子作为X一个子树根节点,高度为0,而X没有右孩子,因此根本谈不上右子树的高度, 这种情况咋办呢?实际上这种情况下X的平衡因子为1,于是乎,平衡因子并不是严格意义上的高度差,而应该遵循以下定义:一个节点X的平衡因子就是一个路径 差。(工作忙,待续)
深入理解AVL树
最新推荐文章于 2021-11-10 08:21:09 发布