第三部分:红黑树——自平衡的艺术 红黑树是一种特殊的二叉搜索树,它通过一系列的规则和调整操作来保持树的平衡,确保在最坏的情况下仍能提供良好的时间复杂度。接下来,让我们一起深入探索红黑树的奥秘。 3.1 红黑树的基本原理 红黑树的定义 红黑树是每个节点都带有颜色属性的二叉搜索树,颜色或为红色或为黑色。但...
平衡二叉树追求绝对严格的平衡,平衡条件必须满足左右子树高度差不超过1,红黑树是放弃追求完全平衡,它的旋转次数少,插入最多两次旋转,删除最多三次旋转,所以对于搜索、插入、删除操作较多的情况下,红黑树的效率是优于平衡二叉树的。 红黑树是终结吗? 时代总是进步的,大胆猜测不会是,就跟当初从数组、链表到二叉树一...
平衡二叉树的严格定义是这样的:二叉树中任意一个节点的左右子树的高度相差不能大于 1。从这个定义来看,前面介绍的完全二叉树、满二叉树其实都是平衡二叉树,但是非完全二叉树也有可能是平衡二叉树。 平衡二叉查找树不仅满足上面平衡二叉树的定义,还满足二叉查找树的特点。 1.1 AVL如何维护二叉树的平衡 最先被发明的平...
二、 平衡二叉树(Balanced Binary Tree) 又称为AVL树,具有二叉树的全部特性,解决二叉树退化成链表情况的问题,每个节点的左子树和右子树的高度之差不会超过1,AVL树是严格的 平衡二叉树,追求完全平衡,比较严格。 缺点: 由于要求每个节点的左子树和右子树高度之差不超过1,这个要求非常严格,追求完全平衡,这就导致了...
红黑树 Red Black Tree,一种自平衡的二叉搜索树(Self Balancing Binary Search Tree),又叫平衡二叉B树(Symmetric Binary B-tree)。 定义:红黑树是一种含有红黑结点,并能自平衡的二叉查找树。插入,删除,查找的复杂度都是 满足二叉搜索树的性质外,还要满足如下性质: ...
平衡二叉树定义二叉树中任意一个节点的左右子树的高度相差不能大于 1,所以上图中的满二叉树和完全二叉树都是平衡二叉树,但是非完全二叉树也可以是平衡二叉树。 最先被发明的平衡二叉查找树是AVL树,它是一种非常严格的平衡二叉查找树,即任何节点的左右子树高度相差不超过 1。
可以看出使用平衡二叉树可以有效的减少二叉树的深度,从而提高了查询的效率。 红黑树? 红黑树除了具备二叉查找树的基本特性之外,还具备以下特性: (1) 节点是红色或黑色; (2) 根节点是黑色; (3) 所有叶子都是黑色的空节点(NIL 节点); (4) 每个红色节点必须有两个黑色的子节点,也就是说从每个叶子到根的所有...
平衡因子(平衡度):平衡度为1,既每个结点的平衡因子都为 1、-1、0 的二叉排序树。或者说每个结点的左右子树的高度最多差1的二叉排序树。 平衡二叉树的目的是为了减少二叉查找树层次,提高查找速度 平衡二叉树的常用实现方法有AA树、AVL树、红黑树、树堆Treap、伸展树等 ...
二、平衡二叉树 1️⃣概念 平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构。 2️⃣规则 平衡二叉树是采用二分法思维把数据按规则组装成一个树形结构的数据,用这个树形结构的数据减少无关数据的检索,大大的提升了数据检索的速度;平衡二叉树的数据结构组装过程有以下规则: ①非叶子节点只能允...
数据结构:二叉树、平衡二叉树、红黑树详解 数据结构:⼆叉树、平衡⼆叉树、红⿊树详解 ⼀、⼆叉树(binary tree)指每个节点最多含有两个⼦树的树结构。时间复杂度为O(log N),在退化成链表的情况下时间复杂度为O(N)。特点:1.所有节点最多拥有两个⼦节点;2.节点的左⼦树只包含⼩于当前根...