1 2 3 4 5顺序插入,形成一个红黑树

红黑树的特性与优点

红黑树是一种自平衡的二叉搜索树,通过额外的颜色标记和平衡性约束,确保树的高度始终保持在 O(log n)。其核心特性如下:

  1. 每个节点要么是红色,要么是黑色
  2. 根节点和叶子节点(NIL节点)是黑色
  3. 红色节点的子节点必须是黑色(不能有两个连续的红色节点)。
  4. 从任一节点到其每个叶子的路径都包含相同数目的黑色节点(黑高平衡)。

这些特性使得红黑树在插入、删除时通过颜色调整和旋转操作维持平衡,避免了BST的退化问题。

顺序插入12345

       2(B)
      /   \
    1(B)  4(B)
          / \
        3(R)5(R)

步骤解释:

  1. 插入1:根节点,设为黑色。

    • 1(B)
  2. 插入2:作为1的右子节点,设为红色。无冲突。

      1(B)
       \
        2(R)
    
  3. 插入3:作为2的右子节点,设为红色。此时父节点2(红)与子节点3(红)冲突。

    • 调整:左旋祖父节点1,将2提升为根并设为黑色,1和3设为红色。
        2(B)
       /   \
     1(R)  3(R)
    
  4. 插入4:作为3的右子节点,设为红色。父节点3(红)与子节点4(红)冲突。

    • 调整:颜色翻转(父节点3和叔叔节点1变黑,祖父节点2变红),最后根保持黑色。
        2(B)
       /   \
     1(B)  3(B)
             \
              4(R)
    
  5. 插入5:作为4的右子节点,设为红色。父节点4(红)与子节点5(红)冲突。

    • 调整:左旋祖父节点3,将4设为黑色,3设为红色。
        2(B)
       /   \
     1(B)  4(B)
           / \
         3(R)5(R)
    

验证规则:

  • 根为黑色:满足。
  • 红色节点无红色子节点:3®和5®的子节点均为NIL(黑)。
  • 所有路径黑色节点数相同:每条路径均为2个黑色节点(例如:2→1→NIL2→4→3→NIL)。

该结构严格遵循红黑树的五条性质,是一棵有效的红黑树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值