红黑树

作者: 修符道人 | 来源:发表于2019-11-18 17:41 被阅读0次

关于树的一些基础理论请参照https://blog.51cto.com/4259297/1708154
由于红黑树异常复杂,所以单独成文。

概念

https://www.cnblogs.com/skywang12345/p/3245399.html
http://www.360doc.com/content/18/0904/19/25944647_783893127.shtml

红黑树也是一棵二叉搜索树,和AVL树是并列的层级。但是,注意红黑树并不是平衡二叉树
红黑树与平衡二叉树的区别?

特征:

(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

必须要知道的知识点

树的深度

https://blog.csdn.net/saltriver/article/details/54428750

树的类型

https://blog.csdn.net/linjpg/article/details/80910806

  • 平衡二叉树
    它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

  • 二叉搜索树(二叉查找树)
    它或者是一棵空树,或者是具有下列性质的二叉树:

    若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
    若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
    它的左、右子树也分别为二叉排序树

  • AVL树(平衡二叉搜索树)
    AVL树是平衡二叉树和二叉搜索树的合体,也叫做”平衡二叉搜索树“。
    特征:

    AVL树是一棵二叉搜索树。
    AVL树的左右子节点也是AVL树。
    AVL树拥有二叉搜索树的所有基本特点。

    每个节点的左右子节点(同一层的兄弟结点)的高度之差的绝对值最多为1,即平衡因子为范围为[-1,1]。

两个重要的操作

旋转

着色

二叉树的旋转、着色等操作相当的复杂,但是最终只有一个目的:将要处理的数据变成二叉树,再变成红黑树(满足它所有的特性)。

相关文章

  • 数据结构—树—红黑树

    红黑树概述 红黑树的插入 红黑树的删除

  • TreeMap

    需要先了解红黑树,这是之前分析红黑树的文章。之前在分析红黑树时,我认为红黑树=二叉查找树+红黑平衡,关于二叉查找树...

  • 数据结构与算法-AVL 红黑树

    AVL树AVL树 算法红黑树红黑树 B站

  • [转载]红黑树

    https://zhuanlan.zhihu.com/p/24367771红黑树简介红黑树插入红黑树删除

  • 拿下红黑树

    红黑树 红黑树、2-3树的简单定义: 实现红黑树的基本结构以及添加操作(维护定义,左旋、右旋、颜色反转) 红黑树与...

  • 红黑树

    啥是红黑树,红黑树 = 二叉树

  • 彻底理解红黑树(二)之 插入

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的插入情况...

  • 彻底理解红黑树(三)之 删除

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的删除情况...

  • Golang红黑树

    红黑树 红黑树是每个节点都带有颜色属性(红色或黑色)的二叉查找树。红黑树也属于自平衡二叉查找树。 红黑树具有如下性...

  • 数据结构红黑树添加、修改原理分析

    源码分析大纲 数据结构解析 红黑树试下原理刨析 数据结构解析 1.红黑树 1.1 红黑树概念 红黑树(Red Bl...

网友评论

      本文标题:红黑树

      本文链接:https://www.haomeiwen.com/subject/durbictx.html