红黑树快速理解

认识红黑树

我觉得认识红黑树的第一步要从为什么发明并使用它开始。
学习数据结构这门课的同学,如果用的是严蔚敏老师的经典教材的话,其中是没有对红黑树进行讲解的,但一定学过二叉搜索树和AVL树(平衡二叉树)。其中二叉搜索树解决的是查找问题,好的情况下的时间复杂度能达到O(logn),但也存在坏的情况,最坏的情况就是此树极度不平衡,此时便退化成一条链表,时间复杂度为O(n)。我们当然不希望这种最坏的情况发生,所以我们引入AVL树,但AVL树的条件太过严格和理想。由此,红黑树便登上了舞台,它既能解决二叉搜索树不平衡的状况,且它的条件也相对于AVL树更宽松一些。
本质一些的讲:红黑树是一棵特殊的二叉搜索树。

红黑树的性质

1.每个节点不是红色就是黑色
2.树的根是黑色
3.没有两个相邻的红色节点
4.对每个节点,从该节点到其后代叶节点的简单路径上,均包含相同数目的黑色节点,注意,叶子结点下方规定挂着两个黑色空结点。

红黑树应用

红黑树应用还是很广泛的,其中比较典型的有:
C++ STL 中的map就用到红黑树来解决哈希冲突数量太多的问题。
JAVA JDK1.8中hashmap 用到链表加红黑树结构,也是用来解决大量的哈希冲突。
linux 内核中调度。

红黑树的操作

操作主要分为三个
1.搜索查找
2.插入
3.删除

搜索查找

搜索查找和比较平衡的二叉搜索树一样,时间复杂度为O(logn)。

插入与删除操作

https://blog.csdn.net/qq_36610462/article/details/83304175

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值