红黑树

啥是虹黑树

一种自平衡二叉查找树

特性:节点是红色或黑色

根节点一定是黑色

每个叶节点都是黑色的空节点(NIL节点)

每个红节点的两个子节点都是黑色的(从每个叶子到跟的所有路径上不能有两个连续的红节点)(即对于层来说除了NIL节点,红黑节点是交替的,第一层是黑节点那么其下一层肯定都是红节点,反之一样)

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

参考博客

博客Java TreeMap为例解析红黑树

红黑树

从二叉查找树、2-3树彻底理解红黑树

红黑树详细分析

网上相关资料很多,这里只记录插入的五种情况
  1. 插入节点为root节点,直接改节点颜色为红色
  2. 插入节点后,父节点为黑色,无需改变
  3. 插入节点后,父节点为红色,且父节点的兄弟节点也是红色:修改父节点和其兄弟节点为黑色,祖父节点为红色,并检查祖父节点是否满足条件
  4. 插入节点后,父节点为红色,父节点的兄弟节点为黑色,并且是右插入:修改父亲节点为黑色,祖父节点为红色。以父节点为中心,进行左旋,并以祖父节点为中心右旋
  5. 插入节点后,父节点为红色,父节点的兄弟节点为黑色,并且是左插入:修改父亲节点为黑色,祖父节点为红色。以祖父节点为中心右旋
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值