概述
- 二叉搜索树
- AVL
小试牛刀
1 | 存在由()个节点的AVL,所有内部节点平衡因子都不为零 |
有序性

单调性

BST模板类 && 接口

1 | What's the difference between a binary search tree and a regular binary tree?二叉搜索树之区别于普通的二叉树在于:A |
BST查找

BST插入

实现

1 | Consider inserting a target element e into a BST. when it fails to be found during the search, which node does _hot correspond to? |
BST删除

单分支
待删除节点至多有一个孩子

实现

双分支

实现

复杂度

1 | 当欲删除的节点v在BST中的度为2时,实际被删除的节点为:C |
AVL树
平衡


平衡因子
左右子树高度差不超过1

高度为h的AVL树,至少包含S(h) = fib(h + 3) - 1个节点
S(h) = 1 + S(h - 1) + S(h - 2)
S(h) + 1 = [S(h - 1) + 1] + [S(h + 1) + 1]

AVL接口

单旋

双旋

插入实现

删除

实现

AVL树:3 + 4重构


rotateAt()

AVL综合评价

习题
zhangzezhong
学习自:清华大学邓俊辉老师《数据结构》课程第八章 二叉搜索树
