红黑树的插入和删除

本文详细介绍了红黑树的插入和删除操作。插入时,新节点默认为红色,通过调整保持红黑树性质;删除时,通过转换处理,确保节点删除后仍满足红黑树特性。涉及的操作包括旋转、颜色调整等。
摘要由CSDN通过智能技术生成

概述

本篇文章主要讲述红黑树的插入和删除操作,而红黑树的查找操作和普通的二叉查找树完全相同,因此不用过多的介绍。因为向红黑树中插入或删除节点时会引起红黑树结构的变化,有时还会破坏红黑树的性质,所以为了在插入或者删除之后继续保持满足红黑树的性质,我们不得不做很多的工作,主要有左旋转,右旋转,改变节点颜色等。


红黑树的查找

在红黑树中查找一个键值是否存在时,首先从根节点开始,如果根节点的键值等于要查找的键,那么直接返回结果,否则判断根节点和被查节点的大小。若被查节点大于根节点则进入右子树继续查找,否则进入左子树。并且递归进行这一过程,知道找到相同的键值或者已到达红黑树的叶子节点。这是一个2分的过程,时间复杂度为lgn。


红黑树的插入

我们向红黑树中插入新的节点时,约定新节点的颜色为红色,这里将其成为N。由于红黑树也是一种二叉搜索树,所以每次插入新节点时,必然是向叶子节点插入,但为了保持红黑树的性质,要进行一些旋转操作,我们在下面的情况中一一说明。

1、当目前的红黑树是一颗空树的时候,直接将N的颜色改为黑色即可。

2、当N的父节点为黑色时,直接插入,不需要修改。

3、当N的父节点为红色时,会涉及到三种情况。

  • N的叔父节点为红色。这种情况,将N的父节点和叔父节点的颜色都改为黑色,若祖父节点是跟节点就将其改为黑色,否则将其颜色改为红色,并以祖父节点为插入的目标节点从情况1开始递归检测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值