数据结构-红黑树(Red-black Tree)

1.为什么需要红黑树
虽然二叉查找树查询效率为log n,但是在频繁更新,极端情况下,二叉查找树会退化成链表,时间复杂度会变成O(n),红黑树的出现就是为了防止这种情况的产生,所有红黑树是一个特殊的二叉查找树-平衡二叉查找树

2红黑树的定义
1.根节点是黑色的;
2每个叶子节点都是黑色的空节点(NIL),也就是说,叶子节点不存储数据;
3任何相邻的节点都不能同时为红色,也就是说,2个红色节点不能连载一起
4每个节点,从该节点到达其可达叶子节点的所有路径,都包含相同数目的黑色节点;

3.红黑树的插入和删除都可能破坏红黑树的机构,所以每次插入或删除后,需要调整结构,使得其满足红黑树的结构

1.插入:
红黑树规定,插入的节点必须是红色的。而且,二叉查找树中新插入的节点都是放在叶子节点上
如果插入节点的父节点是黑色的,那我们什么都不用做,它仍然满足红黑树的定义。如果插入的节点是根节点,那我们直接改变它的颜色,把它变成黑色就可以了。
除此之后其他情况都得调整,调整规则有3个,左旋,右旋和改变颜色

变换规则:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值