红黑树

博客介绍了红黑树,它是自平衡的二叉查找树,具有节点颜色、根节点颜色、子节点颜色及路径黑色节点数等4个性质。插入数据时为防止违反性质,插入节点设为红色,并详细说明了不同插入情况的处理方式,如节点与父、叔、祖父节点关系不同时的颜色调整和旋转操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

它具有以下4个性质:

1、节点颜色必须是红色或者黑色

2、根节点是黑色

3、每个红色节点的两个子节点都是黑色

4、从任一节点到每个叶子的所有路径都包含数目相同的黑色节点

了解完红黑树的基本性质,我们就开始插入数据,为了防止违反性质5,所以我们插入的数据都是为红色。

 

插入数据情况基本就是这样,总结一下:

1、如果插入的节点,父节点为,叔叔节点(插入节点的父节点的兄弟节点)为,那么 就要把父节点和叔叔节点涂成,祖父节点涂成(但如果是根节点涂成黑色)。

2、如果插入的节点,父节点为,父节点是祖父节点的右支,叔叔节点为,且

      (1)要插入的节点为父节点的右支,那么对其 祖父节点左旋。就相当于:

           (2)要插入的节点为父节点的左支,那么 对父节点先右旋,然后按照旋转后的位置重新进行规则判断,接着对其祖父节点进行左旋。

3、如果插入的节点,父节点为,父节点是祖父节点的左支,叔叔节点为,且

      (1)要插入的节点为父节点的左支,那么对其 祖父节点右旋。

      (2)要插入的节点为父节点的右支,那么 对父节点先左旋,然后按照旋转后的位置重新进行规则判断,接着对其祖父节点进行右旋。即:上图的插入40数据。(相当于如果是<,那么先左后右,如果是>,那么先右后左)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值