算法与数据结构学习(44)-平衡二叉树(AVL树)

看一个案例(说明二叉排序树可能的问题)

给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在
创建二叉排序树结果如下:
算法与数据结构学习(44)-平衡二叉树(AVL树)
由于二叉排序树的概念的限制,递增的数据在构建二叉排序树的是偶就会形成如上的形式,其结构很类似于链表的结构。对于这个二叉排序树,他的插入删除还是很快的,但是他的查询速度就很慢,因为每次都要判断是左还是右子树。

上图中BST 存在的问题分析:
1.左子树全部为空,从形式上看,更像一个单链表.
2.插入速度没有影响
3.查询速度明显降低(因为需要依次比较), 不能发挥BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢
4.解决方案-平衡二叉树(AVL)