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