美文网首页
[树]红黑树

[树]红黑树

作者: Quasars | 来源:发表于2015-07-25 20:35 被阅读31次

很早以前写过一个c版本的红黑树,现在以c++重写之,并引入面向对象,有时间的话再实现线程安全版本.

原理

  • rb-tree是自平衡搜索树,整个结构是位于内存中的,中心思想是每次插入或者删除key时,维护好下面的5条性质,其中令其保持平衡的是第5条性质.

  • 由于是二分搜索树,树的深度会较大.(相较于B-树、B+树)

  • 五条性质:

 1. root节点为黑色
 2. 每个节点为黑色或红色
 3. 叶子节点为黑色
 4. 红节点的2个儿子为黑色
 5. 任意一个节点到其所能到达的任意叶子节点的简单路径上的黑高度一致

注意啊,有人把空节点算为黑色节点,也有人直接忽略空节点.

主要是两个互逆的操作插入和删除.

  1. 插入
  1. 删除

相关文章

  • 数据结构—树—红黑树

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

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

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

  • TreeMap

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

  • 拿下红黑树

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

  • [转载]红黑树

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

  • 红黑树

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

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

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

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

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

  • Golang红黑树

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

  • [树]红黑树

    很早以前写过一个c版本的红黑树,现在以c++重写之,并引入面向对象,有时间的话再实现线程安全版本. 原理 rb-t...

网友评论

      本文标题:[树]红黑树

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