BST
性质
左子树<根节点、右子树>根节点
用途
解决排名相关的检索需求
基本操作
插入操作
一直插入到叶子节点
删除操作
1、删除叶子节点:直接删除,并将其父节点的孩子节点置空
2、删除度为1的节点:删除后,将孩子节点挂到父节点的父节点上
3、删除度为2的节点:找到前驱或者后继替换后,转换为度为1的节点
缺点
查找效率依赖于节点的插入顺序
AVL树
二叉排序树可能会退化成链表,时间效率从o(logn)---->o(n)
所以给出了平衡二叉排序树
性质
|h(left) - h(right)| <= 1
高度限制:low(h-2) + low(h-2) + 1 <= size(h) <= 2 ^ h - 1
近似于:1.5^h <= size(h) <= 2^h -1
调整策略
LL型:直接将不平衡的节点右旋
LR型:将不平衡节点的左孩子节点左旋,然后将该节点右旋
RL型:将不平衡节点的右孩子右旋,将该节点左旋
RR型:将不平衡节点左旋
SB树
满足:
size(left) >= size(right->left)、size(left) >= size(right->right);
size(right) >= size(left->left)、size(right) >= size(left->right);