, 如下不平衡搜索树:
可以发现,如果搜索二叉树退化到这样极端的不平衡状态,其搜索效率就会大大降低, 时间复杂度会从
退化到
.为了解决这种情况,我们将引入AVL树的概念....我们将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor), 那么平衡二叉树上所有结点的平衡因子只可能是-1/ 0/ 1....AVL树的操作
AVL树的插入操作
我们知道,对于一颗AVL树而言,新插入的结点是很有可能破坏其平衡结构的,如:
那么AVL树是如何解决这种情况的呢?...下面我将通过模拟一组AVL树结点的插入来讲清楚AVL树是如何维持其平衡特性的....9:
此时AVL树仍然是平衡状态,然后我们插入下一个结点5:
可以看到,插入结点5之后,AVL树的根节点14就已经不满足平衡搜索二叉树的条件了,即它左子树的高度减去右子树的高度已经大于