红黑树(RBTree)

红黑树(RBTree)

红黑树:AVL树的变种,具有如下4个条件:
  1、每一个结点是红色或黑色
  2、根结点是黑色。
  3、如果一个节点是红色,那么它的两个子节点必须是黑色。(不能出现两个相连的红色结点)
  4、从任意一个结点到一个null引用的每一条路径必须包括相同数目的黑色结点。

  由于红黑树的特点得出结论:红黑树的高度最多是2log(N+1),因此其查找操作的时间复杂度为对数操作。
  在将新结点作为叶结点插入树中,默认该结点为红色。如果当前节点的父节点是黑色,那么直接插入完成;而若当前节点的父节点是红色,由于违反条件3,因此需要进行调色或旋转操作。

为什么该结点默认为红色而不是黑色?

  因为红黑树需要满足任意一个结点到一个null引用的每一条路径必须包括相同数目的黑色结点(条件4),若新结点为黑色,那么会导致该路径上的黑色结点数目+1,不符合红黑树的条件。

为什么要使用红黑树?

  相比于二叉搜索树来讲,红黑树保证了树的平衡性,降低了树的高度,提高了树的查找性能,防止由于插入顺序(升/降序插入)导致二叉搜索树成为一条链表的情况。
  相比于AVL树来

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值