[树]红黑树

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

原理

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

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

  • 五条性质:

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

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

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

  1. 插入
  1. 删除
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容