红黑树特性及节点插入规则

本文详细介绍了红黑树的性质、插入规则,并通过实例演示了红黑树的插入过程,包括节点颜色调整和旋转操作,帮助理解红黑树保持平衡的机制。

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

红黑树

平衡效率没有AVL好

插入删除少,查找多的时候,用AVL。

插入删除多,查找少的时候,用红黑树。

特性

性质1. 结点是红色或黑色。

性质2. 根结点是黑色。

性质3. 所有叶子都是黑色。(叶子是NIL结点)

性质4. 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)

性质5. 从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。

红黑树高度h不超过2log2(n+1),证明省略。

插入节点规则

对于新插入的节点,先置为红色

在这里插入图片描述
例子,空树插入以下节点:35、75、65、56、78、29、41、37、38。

1.插入节点35,父节点为空null,将节点35颜色置为black
在这里插入图片描述
2.插入节点75,父节点为black,直接插入
在这里插入图片描述
3.插入节点65,如图1;
此时,父节点red,叔节点black,RL类型,根据规则,先右旋,此时父节点75当作新插节点如图2;
此时,父节点red,叔节点black,RR类型,根据规则,父节点65置为black,祖父节点35置为red,然后进行左旋,得到图三。

在这里插入图片描述
4.插入节点56,如图1;
此时,父节点red,叔节点red,根据规则祖父节点置red,父节点和叔节点置black,将祖父节点65当作新插节点,如图2;
此时,根据规则,父节点为null,将节点65置black,如图3
在这里插入图片描述
5.插入节点78,父节点为black,直接插入。
在这里插入图片描述
6.插入节点29,父节点为black,直接插入。
在这里插入图片描述
7.插入节点41,如图1;
此时,父节点red,叔节点red,根据规则祖父节点置red,父节点和叔节点置black,将祖父节点35当作新插节点,如图2;
由于节点35的父节点为black,无需操作。
在这里插入图片描述
8.插入节点37,如图1;
此时,父节点red,叔节点black,类型LL,根据规则,父节点变黑,祖父节点变红,然后右旋,如图2;
在这里插入图片描述
9.插入节点38,如图1;
此时,父节点red,叔节点red,根据规则,祖父节点变红,父节点和叔节点变黑,将祖父节点41当作新插节点,如图2;
此时,父节点red,叔节点black,LR类型,根据规则,先左旋,然后父节点35当作新插入节点,如图3;
此时,父节点red,叔节点black,LL类型,根据规则,父节点变黑,祖父节点变红,右旋,如图4;
在这里插入图片描述

至此,插入完成,一个红黑树构建完毕。

参考
https://www.cnblogs.com/woniu4/p/8086707.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值