1、二叉树:每个结点至多拥有两棵子树,二叉树的子树有左右之分
1.1 二叉树的遍历方法:
前序遍历:访问根结点的操作发生在遍历其左右子树之前,一般说的是 根-左-右 遍历。
中序遍历:访问根结点的操作发生在遍历其左右子树之中(间),一般说的是 左-根-右 遍历。
后序遍历:访问根结点的操作发生在遍历其左右子树之后,一般说的是 左-右-根 遍历。
层次遍历:从根节点开始访问,从上到下逐层遍历,在同一层中,按从左到右的顺序结点逐个访问。
https://www.cnblogs.com/fly-me/p/wei-ti-jiaoer-cha-shu-de-si-zhong-bian-li-fang-fa.html
1.2 二叉搜索树
也称为有序二叉查找树
特性:
1)任意节点左子树不为空,则左子树的值均小于根节点的值
2)任意节点右子树不为空,则右子树的值均大于于根节点的值
3)任意节点的左右子树也分别是二叉查找树
4)没有键值相等的节点
1.1.1 AVL树
有强平衡条件的二叉查找树
AVL树的左右子节点也是AVL树
平衡条件必须满足(所有节点的左右子树高度差不超过1).不管我们是执行插入还是删除操作,只要不满足上面的条件,就要通过旋转来保持平衡,而旋转是非常耗时的
当x位于A的左子树的左子树上时,执行LL旋转。
当x位于A的左子树的右子树上时,执行LR旋转。
当x位于A的右子树的右子树上时,执行RR旋转。
当x位于A的右子树的左子树上时,执行RL旋转。
https://www.cnblogs.com/idreamo/p/8308336.html
1.1.2 红黑树
弱平衡条件的二叉查找树
确保从根到叶子节点的最长路径不会是最短路径的两倍,用非严格的平衡来换取增删节点时候旋转次数的降低
性质:
1)节点是红色或黑色。
2)根节点是黑色。
3)每个叶子节点都是黑色的空节点(NIL节点)
4)每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
5)从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点
添加或删除红黑树中的结点之后,需要进行旋转变色,重新满足红黑树的特性
左旋:以某个结点作为支点(旋转结点),其右子结点变为旋转结点的父结点,右子结点的左子结点变为旋转结点的右子结点,其左子结点保持不变。
右旋:以某个结点作为支点(旋转结点),其左子结点变为旋转结点的父结点,左子结点的右子结点变为旋转结点的左子结点,其右子结点保持不变。
https://www.cnblogs.com/nananana/p/10434549.html
本文详细介绍了二叉树的基本概念,包括二叉树的遍历方法:前序、中序、后序和层次遍历。深入探讨了二叉搜索树的特性,以及两种平衡树:AVL树和红黑树的工作原理。AVL树强调严格平衡,通过旋转维护平衡条件;红黑树则采用弱平衡,通过旋转变色确保树的高度相对平衡。
5万+

被折叠的 条评论
为什么被折叠?



