【C++】————红黑树

 9efbcbc3d25747719da38c01b3fa9b4f.gif

                                                      作者主页:     作者主页

                                                      本篇博客专栏:C++

                                                      创作时间 :2024年7月29日

9efbcbc3d25747719da38c01b3fa9b4f.gif

1.红黑树的概念

  红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的

2.红黑树的性质

关于红黑树,都有什么性质呢?下面我们来一一列举。

  1. 对于一个节点,不是红色就是黑色。
  2. 根节点必须是黑色的
  3. 如果一个节点是红色的,则他的两个孩子节点必须是黑色的
  4. 对于每个节点,从该节点到达该其所有的后代叶节点的简单路径上,均包含相同数目的黑色节点
  5. 每个叶子节点都是黑色的,此处的叶子节点指的是空节点。

那么我们来想一下,为什么满足以上所有条件之后,这个子树的最长路径中节点之和不会超过最短路径中节点个数之和的两倍。

  • 最短路径:上述规定4中我们说过,每个节点到叶子节点,均包含相同个数的黑色节点,所以最短路径不就是一条只有黑色节点的路径嘛,因为黑色节点必须包含嘛,所以不包含红色就是最短的
  • 最长路径:
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值