【红黑树】都这样讲了,不会还有人不会红黑树吧
文章目录
- 1. 简介红黑树 and 红黑树的性质
- 2. 在红黑树中操作元素
- 2.1 在红黑树中查找一个元素
- 2.2 在红黑树中插入元素
- 3. 手撕红黑树
- 4. 通过总体聊聊AVL树和红黑树
1. 简介红黑树 and 红黑树的性质
我们在前面学习过二叉树,而二叉树有被简单的分为普通二叉树,二叉搜索树,完全二叉树,二叉平衡树等,在二叉搜索树中包含有 AVL树,红黑树。博主在以前的文章中写过AVL树的相关内容,有兴趣的读者可以去康康,直接甩链接(124条消息) 【数据结构高阶】终于有人把AVL树给说清了_小小怪下士~的博客-CSDN博客
我们学习过AVL树的同学们都知道,AVL树是一个绝对平衡的二叉树,所谓的绝对平衡说的就是一个节点的左右子树的高度之差的绝对值是不能超过1的
,我们同时也知道这个AVL树主要是被用于查找元素的,为了提高查找元素的效率我们才让它绝对平衡,这样它的查找元素的时间复杂度就为O(logn),它中添加和删除元素的时候,就显得格外吃力了。
于是我们今天介绍一个我们的红黑树,这个特殊的二叉树其实也是一个平衡树,但是没有AVL树那么的绝对,它是相对平衡的。
有关于红黑树的性质:
每个节点要么是黑色,要么是红色
根节点永远是黑色的
每个叶子节点(NIL)是黑色的
每个红色节点的两个子节点一定都是黑色,不能有两个红色节点相连
任意一个节点到每个叶子节点的路径都包含相同数量的黑色节点
如果一个节点是黑色的,那么这个节点肯定存在两个子节点
2. 在红黑树中操作元素
2.1 在红黑树中查找一个元素
其实这里所谓的红黑树也就是一个变得较为平衡的二叉搜索树,但是这个平衡没有AVL树那么的绝对平衡。也就是因为这一点,我们这里的红黑树的查询效率会比AVL树稍逊一筹。原因还是归结于红黑树不是那么严格平衡的二叉树,它要求树中的最大的遍历路径要小于树中最短遍历路径的2倍。
说起查找元素还是和普通的二叉搜索树是一样的。就还是那上面的这张图来说,就比如我现在要在红黑树中查找7
这个元素:即从根节点看是找到,8 > 7,那么就要左子树中寻找,然后遇到了4,4 < 7 去右子树中寻找,接着又遇到了5,5 < 7 ,又去右子树中寻找,紧接着就碰到了7, 7 == 7 那么此时就找到了元素。
其实在红黑树中查找元素的最好效率就是O(logn),这就是当每个节点的最右子树的是平衡的,那么此时的红黑树就变成了AVL树。总之呢,AVL树的查找效率 >= 红黑树的查找效率 (=:红黑树变成了AVL树)
2.2 在红黑树中插入元素
那么就下来就介绍一个红黑树的插入喽❤️❤️❤️❤️❤️❤️
插入操作大致分为这两个步骤:
- 查找插入位置(在插入元素的时候,还是涉及查找滴
【红黑树】都这样讲了,不会还有人不会红黑树吧相关推荐
- 红黑树和平衡二叉树的区别_一文搞懂红黑树
文章参考 | https://segmentfault.com/a/1190000012728513 前言 当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力! 二叉树 在了解红黑树 ...
- 接口里面的方法都是抽象方法吗_大家都在讲高中学习的方法有哪些,那方法和技巧有什么异同的吗?...
大家都在讲高中学习的方法有哪些,那方法和技巧有什么异同吗?高中怎样学习,方法重要还是技巧更重要?老牛倒是觉得,二者密不可分,缺一不可.那么,我们一起来看看,高中怎样学习才是最好的. 我真的想说,求求大 ...
- ROS摄像机的标定(这里很好的一点就是给出了标定结果的各个参数的含义,这个很多都没讲)
这里很好的一点就是给出了标定结果的各个参数的含义,这个很多都没讲 转载自:https://blog.csdn.net/artista/article/details/51125560 ROS摄像机的标 ...
- AI时代下,人人都在讲开源
好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受. AI时代下,人人都在讲开源(Open Source). 开源一词,可以说是近些年人工智能领域最热门的主题词之一.从概 ...
- 阵列卡直通模式和raid模式_DNF希洛克Raid:门槛真高,没神话红10都不行,放进来再T出去...
"地下城与勇士之小狐狸君爱谈游戏电竞"第一千七百八十一期<DNF希洛克Raid:门槛真高,没神话红10都不行,放进来再T出去>,韩服已经公布了希洛克Raid最新的视频, ...
- 为什么网红餐饮都做不长久?如何解决网红餐饮店所面临的问题?
随着社交媒体的兴起,网红餐饮在近年来越来越受到人们的关注.这些网红餐饮通常有着独特的装修风格.口味或者服务方式,吸引了大量的消费者前来体验.然而,有越来越多的网红餐饮因为各种原因而不得不倒闭,这引发了 ...
- 网红KOL营销怎么做?如何寻找合适的网红KOL?
网红KOL营销怎么做?如何寻找合适的网红KOL? 一.促进效果 首先来看看海外KOL营销有什么效果? 转化.扩大品牌知名度.社交媒体账号粉丝增长.素材 转型是企业的首要目标,但其他三种效果不容忽视.扩 ...
- 双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。红色球从1—33中随机生成6个不重复的号码;蓝色球号码从1—16中随机生成1个;客户通过键盘录入购买的红色球6个(不重复)和蓝色
双色球规则:双色球每注投注号码由6个红色球号码和1个蓝色球号码组成. 红色球从1-33中随机生成6个不重复的号码:蓝色球号码从1-16中随机生成1个: 客户通过键盘录入购买的红色球6个(不重复)和蓝色 ...
- Java“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码 组成。红色球号码从 1—33 中选择,蓝色球号码从 1—16 中选择。 球的数字匹配数量和颜色决定了是否中奖,具体中奖规则:
package com.zx;import java.util.Random; import java.util.Scanner;/*** @author CaesarChang* @data 202 ...
最新文章
- 访问windows azure虚拟机iis服务器,如何直接从Java访问Azure/IIS证书?
- Java面试170题答案解析(1-20题)
- oracle资产负债表重分类吗,【好会计】讲讲资产负债表中的重分类!
- 配置nginx直接使用webpack生成的gz压缩文件
- 朋友易得 ,知已难求
- 组合数的研究 —— 连续整数的配对
- 120 Python程序中的线程操作-队列
- 【C++】一次遇到的需要加入const属性的情况
- java 数据透视表 组件_Apache POI如何将工作簿样式应用于所有数据透视表 . 我如何排除床单?...
- 如何启用sqlplus的AutoTrace功能
- 测试用例设计——软件测试基础
- 笔记本功耗测试软件,笔记本功率一般多大 笔记本功率检测【图文】
- NTFS, FAT32和exFAT文件系统有什么区别
- 四川省内二本计算机公立好的大学排名,盘点四川省最好的几所二本大学
- Jira Seraph 中的身份验证绕过漏洞(CVE-2022-0540)
- Android移动拼图小游戏
- AR开发有哪些AR库,AR SDK
- oracle新建一个自增列,sequence的使用
- FPGA数字信号处理(九)Vivado FFT IP核实现
- 用opencv简单创建单色图片并保存
热门文章
- 红黑树和平衡二叉树的区别_一文搞懂红黑树