红黑树总结

红黑树是一种自平衡二叉查找树,确保最长路径不超过最短路径的两倍。插入新节点时,如果父节点为红色,可能需要通过变色和旋转来保持平衡。删除操作涉及寻找替换节点并考虑不同情况来维持平衡。红黑树性质包括节点的红色或黑色,黑色节点数量沿路径一致等。
摘要由CSDN通过智能技术生成

红黑树是一种含有红黑结点的自平衡二叉查找树

性质:

  • 节点不是黑色就是红色,根节点一定是黑色的
  • 根到叶子的所有路径,不可能存在两个连续的红色节点
  • 叶子节点都为黑色,且为null
  • 每个节点到叶子节点的所有路径,都包含相同数目的黑色节点(相同的黑色高度)

三种操作:左旋、右旋、变色

红黑树的插入操作

插入步骤:

  • 根据二叉搜索树的特性,找到新的节点合适的插入位置,即找到它的父节点
  • 决定作为父节点的左孩子还是右孩子
  • 标记为红色节点,可能破坏红黑树规则需要变色+旋转

调整情形:

  1. 新插入节点的父节点是黑色节点,红黑树不需要调整

  2. 新插入节点的父节点和叔叔节点都为红色节点,红黑树需要变色

    发现子结点和父节点都为红,那么父节点和叔叔节点均变为黑色,爷爷节点变为红,如果发现爷爷节点和再上层节点都为红,爷爷节点变为子结点重复该操作,直到平衡或者根节点,根节点恒为黑色节点不变色。

    举例:

    插入【51】出现不平衡
    在这里插入图片描述

    • 【51】和【49】都为红色,将【49】和【43】变为黑色,这时根节点的左子树比右子树黑色节点多1,需要将【45】变为红色消除这个影响
    • 【45】变为红色后,【56】也是红色,继续将【56】和【68】变为黑色,因为【60】是根节点,不变色。

    变色后的结果:
    在这里插入图片描述

  3. 新插入节点的父节点为红色,叔叔节点为叶子节点ÿ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值