平衡二叉树与红黑树均是在二叉排序树的基础上发展而来的。平衡二叉树通常在选择题中考察,主要考查内容是:平衡二叉树的定义、插入、删除与查找。红黑树也在选择题中考察,主要考查内容是:红黑树的定义、插入。
一、二叉排序树(二叉查找树/二叉搜索树)
定义:二叉排序树(二叉查找树/二叉搜索树)即满足“左孩子<中间结点<右孩子”的二叉树
二、平衡二叉树
(一)定义
平衡二叉树:即AVL树,指任何结点的左右子树高度差不超过1的二叉排序树,结点左右子树高度差即结点的平衡因子。
(二)插入
要在平衡二叉树中插入新结点,首先要将结点转化为原二叉排序树的叶子结点,然后从插入结点开始从下至上寻找最小不平衡子树,根据最小不平衡子树的类别(LL、RR、LR、RL)对其进行调整,直至其再次成为平衡二叉树。平衡二叉树的建立就是不断插入新结点的过程。
1.LL
LL型:不平衡部分位于最小不平衡子树根结点的左子树的左子树上。
调整策略:单右旋
2.RR
RR型:不平衡部分位于最小不平衡子树根结点的左子树的左子树上。
根结点的右子树的右子树上。
调整策略:单右旋
3.LR
LR型:不平衡部分位于最小不平衡子树根结点的左子树的左子树上。
根结点的左子树的右子树上。
调整策略:先左旋,再右旋
4.RL
RL型:不平衡部分位于最小不平衡子树根结点的左子树的左子树上。
根结点的右子树的左子树上。
调整策略:先右旋,再左旋
(三)删除
与平衡二叉树的插入操作类似,用二叉排序树的方法对结点执行删除操作(直接删除或者转化为删除叶子):
(四)查找
与二叉排序树查找方式相同,从上至下查找目的结点,含有n个结点的平衡二叉树的最大深度为O(Iog2n),因此平均查找效率为O(log2n)。
三、红黑树
(一)定义
红黑树:满足红黑性质的二叉排序树。由于平衡二叉树的插入、删除等操作需要频繁调整全树结构,代价较大,为此在AVL树的平衡标准上进一步放宽条件,引入了红黑树的结构。
(二)性质
红黑树的性质:左根右,根叶黑,不红红,黑路同
解释:
①满足二叉排序树性质,每个结点或是红色,或是黑色的;
②根节点、叶结点(外部结点、NULL结点、失败结点)均是黑色的;
③不存在两个相邻的红结点(即红结点的父节点和孩子结点均是黑色);
④对每个结点,从该节点到任一叶结点的简单路径上,所含黑结点的数目相同。
(三)插入
(三)查找
与二叉排序树查找方式相同,从上至下查找目的结点,含有n个结点的平衡二叉树的最大深度为O(Iog2n),因此平均查找效率为O(log2n)。
写在后面
这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!
参考资料
[1]王道408教材(2025版)
[2]王道课程资料