红黑树学习

黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡,插入、删除、查找的最坏时间复杂度都为 O(logn)。

它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。比如在 Java 集合框架中,很多部分(HashMap, TreeMap, TreeSet 等)都有红黑树的应用,这些集合均提供了很好的性能。

红黑树的五个性质

1.每个节点要么是红的,要么是黑的。

2.根节点是黑的。

3.每个叶节点,即空节点(nil)是黑的。

4.如果一个节点是红的,那么它的子节点是黑的。

5.对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点。

调整

红黑树插入、或删除结点后,可能会违背、或破坏红黑树的原有的性质。
所以为了使插入、或删除结点后的树依然维持为一棵新的红黑树。
那就要做俩方面的工作:
1.部分结点颜色,重新着色
2.调整部分指针的指向,即左旋、右旋。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值