一文带你快速了解红黑树~

【场景】: 平衡二叉搜索树、HashMap...

【前言】: 本文仅对红黑树做简单的介绍,以便了解新知识的伙伴快速入门学习,也供自己学习,日后也可快速的重新复习(单纯脑子...呸 记性不好)

 

 

【首先】 我们需要了解什么是红黑树

红黑树首先是一棵自平衡二叉搜索树,不仅具有其特性,还具有以下几个特点:

  1. 【根叶全黑】: 根节点是黑色, 叶节点是不存储数据的黑色空节点;                                      
  2. 【无相邻红节点】:任何相邻的节点都不能同时为红色,既每个节点要么为黑要么为红,如果一个节点是红色,则孩子节点为黑色;                                                                                  
  3. 【到任意的节点黑节点个数相同】:任意节点到叶节点的路径中,都包含相同个数的黑色节点

【红黑树的优势?】

        红黑树是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内解决,而AVL(二叉搜索树)是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多。故:红黑树的插入效率更高

【红黑树的应用】

        身为Java(内卷)小小程序猿,用得最多的就是在HashMap中有见到红黑树的影子....

为啥数组和链表的方式在效率上已经较为卓越 ,却在JDK1.8后要在HashMap中用上红黑树这个结构  友友们可以看看我的另一篇文章(还在写...等我一会)

 

【时间复杂度】

既然红黑树是一颗平衡二叉搜索树,那么它的查找、插入、删除的时间复杂度均为:O(lg n)

红黑树举例:

                         

【最后】

本文仅对红黑树做一个基本的介绍,至于红黑树的旋转、插入的等进一步的操作并未作介绍。当然小伙伴觉得以上的内容有问题或是疑义的欢迎私信更改  希望大家一起进步~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值