红黑树

什么是红黑树?

为了解决二叉查找树多次插入新节点而导致的不平衡,我们发明了红黑树(Red-Black Tree,R-B Tree)。

红黑树是一种自平衡的二叉查找树。

 

时间复杂度O(logn)

 

红黑树的特性

(根据特性来进行自平衡,其实就是规则)

1.每个节点或者是黑色,或者是红色

2.根节点是黑色

3.每个叶子节点(NIL)是黑色。(这里叶子节点,是指为空的叶子节点)

4.如果一个节点是红色的,则它的子节点必须是黑色的。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

5.从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

 

红黑树自平衡的操作

两种,变色旋转,旋转又分为左旋转右旋转

 

变色:

应用规则5

应用规则4

旋转:

左旋转:逆时针旋转红黑树的两个节点,使得父节点被自己的右孩子取代,而自己成为自己的左孩子。

右旋转:顺时针旋转红黑树的两个节点,使得父节点被自己的左孩子取代,而自己成为自己的右孩子。

 

适用场景

动态插入、删除,查找数据的场景

 

参考

知乎:https://zhuanlan.zhihu.com/p/31805309

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值