一、二叉排序树
1.1 二叉排序树的定义
- 二叉排序树可用于元素的有序组织、搜索
- 左子树结点值 < 根结点值 < 右子树结点值
- 进行中序遍历,可以得到一个递增的有序序列

1.2 查找操作
- 二叉排序树的查找过程

- 使用递归实现,会增加空间复杂度

1.3 插入操作
- 二叉排序树插入过程

- 二叉排序树的构造

1.4 删除操作
- 被删除节点z是叶子节点

-
被删除结点z只有一棵左子树或右子树


-
被删除结点z有2棵左右子树(直接后继替代法 )
下图二叉树的中序遍历序列为:8 → 11 → 13 → 19 → 21 → 26 → 30 → 50 → 61 → 63 → 65 → 60 → 66 → 70

由二叉树的遍历序列可知,值为60的节点就是z的右子树的最左下节点,因此可以直接将60替换到z节点位置

-
被删除结点z有2棵左右子树(直接前驱替代法)


1.5 查找效率分析
- 最好情况与最快情况

- 平衡二叉树查找效率

- 查找长度

1.6 总结

二、平衡二叉树
2.1 定义
平衡二叉树:结点的左右子树的高度差不超过1

2.2 插入新结点后如何调整"不平衡"问题
2.2.1 LL:在A的左孩子的左子树中插入导致不平衡

2.2.2 RR:在A的右孩子的右子树中插入导致不平衡
- 原理

- 相关练习

2.2.3 LR:在A的左孩子的右子树中插入导致不平衡
- 原理


- 相关练习

2.2.4 RL:在A的右孩子的左子树中插入导致不平衡
- 原理


- 相关练习

2.3 查找效率分析

2.4 总结
