【数据结构的——红黑树】
目录
- 一、红黑树简介
- 二、红黑树的特性
- 三、2-3-4树与红黑树的等价关系
- 四、红黑树的操作
- 4.1、旋转操作
- 4.2、红黑树的插入
- 4.2.1、情形一
- 4.2.2、情形二
- 4.2.3、情形三
- 4.2.4、情形四
- 4.2.5、情形五
- 4.2.6、情形六
- 4.2.7、对插入进行小结
- 4.3、红黑树的删除
- 4.3.1、情形一
- 4.3.2、情形二
- 4.3.3、情形三
- 4.3.4、情形四
- 五、红黑树与AVL区别总结
- 六、工具
一、红黑树简介
红黑树是一种自平衡的二叉查找树,是一种高效的查找树,可以在 O ( l o g 2 n ) O(log_{2}n) O(log2n)时间内完成查找、增加和删除等操作。
有了二叉搜索树,为什么需要平衡二叉树?
对于二叉搜索树,如果插入的数据是随机的,那么它就是接近平衡的二叉树,平衡二叉树(AVLTree)的操作效率较高,查增删的时间复杂度都是 O ( l o g 2 n ) O(log_{2}n) O(log2n)。但是当插入的数据有序时,二叉搜索树的结点就会只在根结点的一侧,就变成了一个链表,操作效率也因此变低,时间复杂度变为了 O ( n ) O(n) O(n),平衡二叉树的出现正是为了应对这种极端情况。
那么有了平衡二叉树,为什么还需要红黑树呢?
- 红黑树是具备了某些特性的二叉搜索树,是一种接近平衡的二叉树,说其接近平衡是因为红黑树没有像AVL树中平衡因子的概念,它只是靠着满足红黑结点的5条性质来维持接近平衡的结构,并没有依靠平衡因子来维持绝对平衡。
- 每次对AVL进行插入(删除)时,几乎都需要通过旋转类保持平衡,在频繁进行插入(删除)的场景中,AVL的性能就大打折扣。而红黑树通过牺牲严格的平衡,换取插入(删除)时少量的旋转操作,整体性能优于AVL。
- 在进行插入操作时,红黑树最多旋转两次就能回到平衡;进行删除操作时,最多进行三次旋转就能回到平衡。
- 即使在最坏情况下,也能在 O ( l o g 2 n ) O(log_{2}n)
相关文章:
【数据结构的——红黑树】
目录 一、红黑树简介二、红黑树的特性三、2-3-4树与红黑树的等价关系四、红黑树的操作4.1、旋转操作4.2、红黑树的插入4.2.1、情形一4.2.2、情形二4.2.3、情形三4.2.4、情形四4.2.5、情形五4.2.6、情形六4.2.7、对插入进行小结4.3、红黑树的删除4.3.1、情形一4.3.2、情形二4.3.…...
第十二章:设置pod和容器权限-保障集群内节点和⽹络安全
本章内容包括: 在pod中使用宿主机节点的默认Linux命名空间以不同用户身份运行容器运行特权容器添加或禁用容器内核功能定义限制pod行为的安全策略保障pod的网络安全 谈到了如何保障API服务器的安全。如果攻击者获得了访问API服务器的权限,他们可以通过在…...
灵途科技再度入选2024年度“光谷瞪羚”企业名单!
今年5月,东湖高新区启动了2024年度“光谷瞪羚”企业认定工作,共有549家企业拟被认定为“光谷瞪羚”企业。作为泛自动驾驶领域光电感知专家,灵途科技凭借其快速成长、强大创新能力和巨大发展潜力,再次获得“光谷瞪羚”企业的荣誉。…...
Centos7.6配置阿里云镜像源
1、备份本地镜像源,将/etc/yum.repos.d/下所有文件备份到/etc/yum.repos.d/bak/下 2、下载阿里云镜像 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 3、清除yum缓存-yum clean all 4、验证镜像源仓库 yum repolist...
梨子的功效与作用 梨子生吃熟吃功效竟大不同
梨,这一寻常的水果,因其独特的口感和丰富的营养价值,深受人们的喜爱。梨子不仅味道甜美,而且具有多种功效与作用,无论是生吃还是熟吃,都能给人体带来诸多益处。然而,你是否知道,生吃…...
北斗三号5G遥测终端机系统在水库大坝安全监测应用
一、概述 我国现有水库大坝9.8万余座,是世界上拥有水库大坝最多的国家。这些水库大坝在防洪、发电、供水、灌溉等方面发挥巨大效益的同时,所存在的安全风险不容忽视。大坝安全监测是大坝安全管理的重要内容,是控制大坝风险的重要措施。大坝安…...
代码随想录算法训练营第五十一天|99.岛屿数量 深搜 、99.岛屿数量 广搜、岛屿的最大面积
#99. 岛屿数量 深度优先搜索: 每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 本题思路:用遇到一个没有遍历过的节点陆地,计数器就加一,然后把该节点陆地所能遍历到的陆地都标记上。在遇到标记过的陆地节点和海洋…...
【c++刷题笔记-图论】day62:Floyd 算法、A * 算法精讲
Floyd 算法 重点:多源最短路径算法,前的最短路径算法是单源的也就是只有一个起点。递推每个节点之间最短的路径 时间复杂度: O(n^3)空间复杂度:O(n^2) #include <iostream> #include <vector> using namespace std…...
FPGA知识基础之--clocking wizard ip核的使用以及modelsim与vivado联合仿真
目录 前言一、ip核是什么?1.1 定义1.2 分类 二、为什么使用ip核2.1 ip核的优点2.2 ip核的缺点 三、如何使用ip核(vivado)四、举例(clocking wizard ip核)4.1 简介4.2 实验任务4.3 程序设计4.3.1 系统模块4.3.2 波形绘制…...
Java中的分布式日志与追踪
随着微服务架构的流行,分布式系统变得越来越复杂。在分布式系统中,日志和追踪是两个关键的工具,用于监控系统的健康状态、故障排除和性能优化。本文将详细探讨Java中的分布式日志与追踪,介绍相关的技术和工具,并通过代…...
案例精选 | 某省级妇幼保健院自动化安全运营中心建设成功实践
某省级妇幼保健院,是一所集医疗、保健、教学、科研、预防、康复于一体的省级三级甲等妇幼保健机构,专注于为全省妇女儿童提供全方位、高质量的医疗保健服务。医院拥有4个院区,总建筑面积10万平米,开放床位700张,年门诊…...
数字化时代:传统行业的转型之路在何方?
在当前数字化时代的浪潮中,传统行业面临着新挑战与新机遇。为了在激烈的市场竞争中立足并谋求发展,传统行业的运营必须积极拥抱数字化转型。蚓链数字化解决方案帮助你总结如下。 数字化思维:开启转型之门的钥匙 数字化思维是传统行业转型的…...
【STM32系统】基于STM32设计的按键PWM控制舵机窗帘柜子门禁家居等控制系统——文末资料下载
演示视频 基于stm32设计的按键PWM控制舵机窗帘&柜子&门禁&家居等控制系统——完整资料下载 摘要 随着智能家居技术的不断发展,舵机在自动化家居设备中的应用变得越来越广泛。本文设计并实现了一种基于STM32单片机的按键PWM控制舵机系统。通过按键可以精…...
【生成式人工智能-八-大型语言模型的能力评估】
语言模型的能力评估 评估难度来自哪里输出没办法确定给出选择题本身就没标准答案 评估方法人力用语言模型来评估语言模型语言模型的偏爱 评估语言模型的数据集评估模型的不同能力阅读长文的能力心智测验道德性测试安全性测试 通常情况下我们想到的语言模型能力评估,…...
Qt ts文件详解
Qt ts文件(Translation Source file:翻译源文件)是Qt框架中用于存储翻译文本和相关上下文信息的一种特定格式文件,它是Qt Linguist(语言家)工具使用的基础。Qt Linguist是Qt开发工具包中的一个应用程序&…...
操作系统 IO 相关知识
操作系统 IO 相关知识 阻塞与非阻塞同步与异步IO 和系统调用传统的 IODMAmmap 内存映射sendfilesplice 常用的 IO 模型BIO:同步阻塞 IONIO:同步非阻塞 IOIO 多路复用信号驱动 IOAIO:异步 IO 模型 IO 就是计算机内部与外部进行数据传输的过程&…...
C++_手写share_ptr
以下是一个简化版的 shared_ptr 的实现: #include <iostream> template <typename T> class SimpleSharedPtr { public:// 构造函数explicit SimpleSharedPtr(T* ptr nullptr) : ptr_(ptr), count_(ptr ? new size_t(1) : nullptr) {}// 拷贝构造函数…...
【启明智显方案分享】6.86寸高清显示屏音频效果器解决方案
一、项目概述 本方案旨在设计一款集成6.86寸高清触摸显示屏的音频效果器,通过HMI(Human-Machine Interface)芯片Model 4驱动,实现高清晰度的视觉交互。该设备不仅支持音乐、麦克风及温响音量的精细控制,还内置丰富的预…...
vue设置每次加载页面时展示一个双开门效果
一、首先创建一个双开门的蒙层组件 <!-- DoorOverlay.vue --> <template><div v-if"isVisible" class"door-overlay"><div class"door left-door"></div><div class"door right-door"></div&…...
简单的docker学习 第8章 docker常用服务安装
第8章 常用服务安装 本章主要学习最常用的,也是安装起来稍有些麻烦的 MySQL 与 Redis 两种服务器的Docker 安装。至于其它服务器的 Docker 安装,大家可自行查找资料。只要 MySQL 与 Redis这两类服务器学会了安装,其它服务器的安装基本也不会…...
基于springboot+vue电子商务网站用户行为分析hx0901
文章目录详细视频演示技术介绍功能介绍核心代码系统效果图源码获取详细视频演示 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 技术介绍 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomca…...
Steam美区支付实战:巧用虚拟VISA与PayPal组合策略,解锁游戏购买与礼品卡赠送
1. Steam美区支付的核心痛点与解决方案 很多玩家都遇到过这样的问题:好不容易注册了美区Steam账号,却发现国内的信用卡根本无法完成支付。我自己刚开始折腾美区账号时,也在这个环节卡了整整两周。Steam的风控机制确实严格得令人头疼ÿ…...
Nooploop TOFSense-M 点阵激光测距模块:从开箱到ROS集成的全栈开发指南
1. 开箱与硬件初体验 刚拿到Nooploop TOFSense-M时,这个火柴盒大小的模块确实让我有些意外——毕竟能实现0.1-12米测距能力的设备,想象中应该更笨重些。包装盒里除了主体模块,还贴心地配备了杜邦线和转接板,这对嵌入式开发者来说就…...
基于OFA的智能零售解决方案:商品图像自动问答系统
基于OFA的智能零售解决方案:商品图像自动问答系统 1. 引言 走进任何一家现代零售店,你都会看到顾客拿着商品反复查看标签、比较价格、寻找成分信息。这种场景每天都在全球数百万家商店中重复上演。店员们疲于应对各种"这个产品有没有过敏源&#…...
蓝桥杯二分算法通关指南:模板+真题+避坑,O(logn)秒杀大数据题
蓝桥杯二分算法通关指南:模板真题避坑,O(logn)秒杀大数据题 文章目录蓝桥杯二分算法通关指南:模板真题避坑,O(logn)秒杀大数据题一、蓝桥杯二分核心题型(精简必背)1. 二分查找(基础必考…...
Claude Code 接入 DeepSeek、GLM、MiniMax 等国产大模型,手把手带你起飞!
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型! 这篇文章是专门写给那些想撸起袖子直接开干的朋友们的。咱们不整那些虚头巴脑的理论,核心就帮大家解决四件事:搞定 Claude Code 的安装、确认这玩意儿能跑通、成…...
从无人机抗风到机械臂消振:聊聊ESO(扩张状态观测器)在机器人里的那些实战用法
从无人机抗风到机械臂消振:ESO在机器人控制中的工程实践 当四旋翼无人机遭遇突风干扰时,传统PID控制器往往需要数秒才能恢复稳定姿态;而工业机械臂在高速运动时,末端执行器的振动误差可能高达毫米级——这些工程难题背后ÿ…...
10点滑动平均滤波器:嵌入式零依赖高效实现
1. 项目概述MovingAverageFilter 是一个轻量级、零依赖的嵌入式数字滤波器实现,专为资源受限的微控制器环境设计。其核心功能是执行固定长度(10点)的滑动平均(Moving Average)运算,并在每次新采样输入后立即…...
AI绘画联动:OpenClaw调用Qwen3-32B生成Stable Diffusion提示词
AI绘画联动:OpenClaw调用Qwen3-32B生成Stable Diffusion提示词 1. 当AI助手遇上AI绘画:我的自动化创作实验 去年第一次接触Stable Diffusion时,我就被它的创作潜力震撼了。但很快发现一个问题:要得到理想的画面,往往…...
Excel实战:手把手教你用条件格式和分类汇总分析个人开支(计算机二级考点全覆盖)
Excel实战:手把手教你用条件格式和分类汇总分析个人开支(计算机二级考点全覆盖) 在个人财务管理中,Excel是最基础也最强大的工具之一。无论是备考计算机二级的考生,还是希望提升工作效率的职场人士,掌握Exc…...
