当前位置:首页 > 经验 >

红黑树的高度和深度区别(红黑树的原理动态图)

来源:原点资讯(www.yd166.com)时间:2022-11-14 14:34:32作者:YD166手机阅读>>

专注于Java领域优质技术,欢迎关注

红黑树的高度和深度区别,红黑树的原理动态图(1)

作者:JasonGaoH

之前在公司组内分享了红黑树的工作原理,今天把它整理下发出来,希望能对大家有所帮助,对自己也算是一个知识点的总结。

这篇文章算是我写博客以来画图最多的一篇文章了,没有之一,我希望尽可能多地用图片来形象地描述红黑树的各种操作的前后变换原理,帮助大家来理解红黑树的工作原理,下面,多图预警开始了。

在讲红黑树之前,我们首先来了解下下面几个概念:二叉树,排序二叉树以及平衡二叉树。

二叉树

二叉树指的是每个节点最多只能有两个字数的有序树。通常左边的子树称为左子树 ,右边的子树称为右子树 。这里说的有序树强调的是二叉树的左子树和右子树的次序不能随意颠倒。

二叉树简单的示意图如下:

红黑树的高度和深度区别,红黑树的原理动态图(2)

代码定义:

class Node {

T data;

Node left;

Node right;

}

排序二叉树

所谓排序二叉树,顾名思义,排序二叉树是有顺序的,它是一种特殊结构的二叉树,我们可以对树中所有节点进行排序和检索。

性质
  • 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
  • 若她的右子树不空,则右子树上所有节点的值均大于它的根节点的值;
  • 具有递归性,排序二叉树的左子树、右子树也是排序二叉树。

排序二叉树简单示意图:

红黑树的高度和深度区别,红黑树的原理动态图(3)

排序二叉树退化成链表

排序二叉树的左子树上所有节点的值小于根节点的值,右子树上所有节点的值大于根节点的值,当我们插入一组元素正好是有序的时候,这时会让排序二叉树退化成链表。

正常情况下,排序二叉树是如下图这样的:

红黑树的高度和深度区别,红黑树的原理动态图(4)

栏目热文

红黑树与b+树区别(红黑树解决什么问题)

红黑树与b+树区别(红黑树解决什么问题)

树的定义树是包含n(n>1)个结点,n-1条边的有穷集,其中:(1)每个元素称为结点;(2)有一个特定的结点称为根...

2022-11-14 14:55:20查看全文 >>

红黑树和平衡二叉树的优缺点(红黑树为什么是平衡二叉树)

红黑树和平衡二叉树的优缺点(红黑树为什么是平衡二叉树)

1 引言预防针:红黑树本来就是基本算法中的难点,所以看此文时建议先有点预备心理或知识铺垫,没接触过RBT而直接看此文的话...

2022-11-14 14:09:12查看全文 >>

红黑树为什么叫平衡二叉树(详解什么是平衡二叉树)

红黑树为什么叫平衡二叉树(详解什么是平衡二叉树)

前言面试过程中,多多少少会问一点数据结构(二叉树)的问题,今天我们来复习一下二叉树的相关问题,文末总结。1. 二叉树的由...

2022-11-14 14:52:59查看全文 >>

二叉树和红黑树(二叉树和树的关系)

二叉树和红黑树(二叉树和树的关系)

红黑树在工程中的使用,红黑树是平衡树的一种。1. 红黑树顺序的功能2. 快速查找的功能1.二叉树插入1. 如果比当前根节...

2022-11-14 14:17:23查看全文 >>

为什么用红黑树而不是二叉树(红黑树和二叉树优缺点)

为什么用红黑树而不是二叉树(红黑树和二叉树优缺点)

上两节,我们依次讲了树、二叉树、二叉查找树。二叉查找树是最常用的一种二叉树,它支持快速插入、删除、查找操作,各个操作的时...

2022-11-14 14:26:38查看全文 >>

红黑树二叉树的区别(红黑树和平衡二叉树区别)

红黑树二叉树的区别(红黑树和平衡二叉树区别)

很早之前就想写一篇关于红黑树的文章,但是由于担心自己理解的不透彻,就一直不敢下笔。于是在重新看了很多篇文章和资料之后,决...

2022-11-14 14:11:33查看全文 >>

红黑树与平衡二叉树的区别(红黑树平衡树对比)

红黑树与平衡二叉树的区别(红黑树平衡树对比)

红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。简单说就是可用于二分查找的(二叉查找树),且高度是平衡的(...

2022-11-14 14:54:56查看全文 >>

红黑树一定是平衡二叉树吗(红黑树是一个平衡的二叉排序树)

红黑树一定是平衡二叉树吗(红黑树是一个平衡的二叉排序树)

二叉搜索树的局限性 上一节较为详细的介绍了C语言中的二叉搜索树,提到数据采取二叉搜索树的结构存储,可以获得不错的搜索性能...

2022-11-14 14:51:45查看全文 >>

有序树和二叉树的区别(二叉判定树和二叉排序树的区别)

有序树和二叉树的区别(二叉判定树和二叉排序树的区别)

树这些基本的东西必须了解一下!数据结构之树的一些事儿树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据...

2022-11-14 14:19:14查看全文 >>

马拉松赛前一个月怎么训练计划(马拉松赛前一周怎么安排)

马拉松赛前一个月怎么训练计划(马拉松赛前一周怎么安排)

2019宜昌国际马拉松暨全国马拉松锦标赛(宜昌站),将于10月27日上午7:30在湖北宜昌市鸣枪。宜昌国际马拉松创办于2...

2022-11-14 14:25:32查看全文 >>

文档排行