概述
- 二叉搜索树
- 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
学习自:清华大学邓俊辉老师《数据结构》课程第八章 二叉搜索树