红黑树是一种特殊的二叉搜索树,它通过一系列的规则和调整操作来保持树的平衡,确保在最坏的情况下仍能提供良好的时间复杂度。接下来,让我们一起深入探索红黑树的奥秘。 3.1 红黑树的基本原理 红黑树的定义 红黑树是每个节点都带有颜色属性的二叉搜索树,颜色或为红色或为黑色。但它不仅仅是一个普通的二叉搜索树,它...
二叉树 树的每个节点最多只能有两个子节点 上图的第一幅图B节点有DEF三个子节点,就不是二叉树,称为多路树 而第二幅图每个节点最多只有两个节点,是二叉树,并且二叉树的子节点称为“左子节点”和“右子节点” 二叉搜索树 如果我们给二叉树加一个额外的条件,就可以得到一种被称作二叉搜索树的特殊二叉树 二叉...
因此红黑树有时候并不是一颗平衡二叉树。 4 红黑树原理 红黑树能够实现自平衡和保持红黑树特征的主要手段是:变色、左旋和右旋。 左旋:指的是围绕某个节点向左旋转,也就是逆时针旋转某个节点,使得父节点被自己的右子节点所替代 右旋:指的是围绕某个节点向右旋转,也就是顺时针旋转某个节点,此时父节点会被自己的...
平衡二叉树的左右子树的高度差绝对值不超过1,但是红黑树在某些时刻可能会超过1,只要符合红黑树的五个条件即可。 二叉树只要不平衡就会进行旋转,而红黑树不符合规则时,有些情况只用改变颜色不用旋转,就能达到平衡。 二、红黑树的构建过程 红黑树构建时要满足以上的5个规则,那么简单的插入是不够的,因为简单的插入会...
完全二叉树 如果二叉树中除去底层节点后为满二叉树,且底层节点依次从左到右分布,则此二叉树被称为完全二叉树。 image 二叉查找树(Binary Search Tree - BST,又称二叉排序树、二叉搜索树) 二叉查找树根节点的值大于其左子树中任意一个节点的值,小于其右子树中任意一节点的值,且该规则适用于树中的每一个节点。
红黑树是二叉树的身体、2-3 B树的灵魂,用计算机的语言来说就是,红黑树是二叉树的存储结构、2-3 ...
红黑树规定,红色节点的子树必须全部由黑色节点组成,不能包含任何红色节点。这是为了保持树的平衡性。简单来说,就是红色节点之间不能相连,即不出现“不红红”的情况。红黑树的结构定义在了解二叉树的基础上,我们进一步探讨红黑树的结构。红黑树中的每个节点都有特定的属性,包括颜色、指针以及基本行为。1 颜色红黑...
我们知道2-3树能保证在插入元素后,树依然保持平衡状态,它最坏的情况就是所有的子节点都是2-节点,这样树的高度为logN,但是和普通的二叉查找树相比,最坏的情况下树的高度为N,确实能保证最坏情况下的时间复杂度,但是2-3树实现起来过于复杂,所以我们这里介绍一种基于2-3树实现的树结构 —红黑树。
红黑树 在讲红黑树之前,我们需要先了解几种树:二叉树,二叉查找树以及平衡二叉树。二叉树 最多有 2 个孩子的树称为二叉树。由于二叉树中的每个元素只能有 2 个孩子,我们通常将它们命名为左孩子和右孩子。示意:5 /\ 2 3复制代码 代码定义:class Node { T data; Node left; Node ...
平衡二叉树的左右子树的高度差绝对值不超过1,但是红黑树在某些时刻可能会超过1,只要符合红黑树的五个条件即可。 二叉树只要不平衡就会进行旋转,而红黑树不符合规则时,有些情况只用改变颜色不用旋转,就能达到平衡。 二、红黑树的构建过程 红黑树构建时要满足以上的5个规则,那么简单的插入是不够的,因为简单的插入会...