红黑树的原理

红黑树的性质:

红黑树是一棵二叉搜索树,它在每个节点增加了一个存储位记录节点的颜色,可以是RED,也可以是BLACK;通过任意一条从根到叶子简单路径上颜色的约束,红黑树保证最长路径不超过最短路径的二倍,因而近似平衡

具体性质如下:

    每个节点颜色不是黑色,就是红色
    根节点是黑色的
    如果一个节点是红色,那么它的两个子节点就是黑色的(没有连续的红节点)
    对于每个节点,从该节点到其后代叶节点的简单路径上,均包含相同数目的黑色节点

那么为什么当满足以上性质时,就能保证最长路径不超过最短路径的二倍了呢?我们分析一下:

 

你的最短路径就是全黑节点,最长路径就是一个红节点一个黑节点,最后黑色节点相同时,最长路径刚好是最短路径的两倍
红黑树的插入:

红黑树插入节点过程大致分析:

    RBTree为二叉搜索树,我们按照二叉搜索树的方法对其进行节点插入
    RBTree有颜色约束性质,因此我们在插入新节点之后要进行颜色调整

具体步骤如下:

  1. 根节点为NULL,直接插入新节点并将其颜色置为黑色
  2. 根节点不为NULL,找到要插入新节点的位置
  3. 插入新节点
  4. 判断新插入节点对全树颜色的影响,更新调整颜色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值