红黑树

本文详细介绍了红黑树的定义、特性、颜色规则、插入算法及性能优化,包括如何确保树的高度接近平衡,以及如何通过颜色调换和树旋转进行调整。重点突出红黑树在查找、插入和删除操作上的O(logn)时间复杂度,以及它相较于AVL树的统计性能优化。

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

红黑树是一种自平衡二叉查找树,在O(log n)时间内做查找,插入和删除等操作。统计性能优化于平衡二叉树(AVL树)。

 

红黑两色保证树的高度近似平衡,

节点是五元组:color(颜色),key(数据),left(左孩子),right(右孩子)和p(父节点)。

颜色是红或者黑。

根和叶子必须是黑色。

某一节点为红,则两个孩子必须是黑的。

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

 

 

节点的插入:

(1)插入新节点必须为红色,时间O(N)。导致出现两个连续红色节点的冲突,则通过颜色调换(color flips)和树旋转来调整。如果插入黑色会导致根到叶子的路径上有一条路上,多了一个额外黑节点,会很难调整。

(2)自上而下调整为红黑树。

调整方法有三种情况,详细见 http://dongxicheng.org/structure/red-black-tree/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值