AVL树是一种特殊的二叉搜索树
二叉搜索树的局限
我们已经知道,一般情况二叉搜索树的查找效率为log(n),已经足够好了。但是这里为什么强调是一般情况呢?是因为,对于同样的节点,插入的顺序不同,最后得到的二叉搜索树的结构也不一样,对于(2,3,4,5,6,7,8)序列,可以构成下面这样的一颗二叉搜索树:
还是(2,3,4,5,6,7,8)序列,它也能构成下面这样的二叉搜索树,准确的说它应该是一个单链表了,对于单链表,我们很清楚,它的查找操作时间复杂度为n。
n和log(n)的时间复杂度意味什么?从下面的图可以看到,随着元素的增加,log(n)的时间复杂度的增长要远小于n。因此我们自然希望二叉搜索树能尽可能保持log(n)的深度。因此,本文的主人公AVL树横空出世了。
什么是AVL树
AVL