红黑树初解

本文深入探讨了红黑树的基本概念,包括其作为非严格均衡二叉搜索树的特点和规则。文章详细阐述了红黑树的插入和删除操作,通过实例解释了如何通过变色和旋转来保持树的平衡。红黑树在数据结构如 TreeMap 和 TreeSet 中有着重要应用,是提高查找、搜索和删除效率的关键。
摘要由CSDN通过智能技术生成

红黑树初解

今天来复习一下红黑树的知识点,推荐51CTO这个微信公众号。

学过数据结构都知道二叉树的概念,而又有多种比较常见的二叉树类型,比如完全二叉树、满二叉树、二叉搜索树、均衡二叉树、完美二叉树等。

今天我们要说的红黑树就是就是一棵非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入、搜索、删除的效率都比较高。红黑树也是实现 TreeMap 存储结构的基石。

二叉搜索树

二叉搜索树又叫二叉查找树、二叉排序树,我们先看一下典型的二叉搜索树,这样的二叉树有何规则特点呢?

二叉搜索树特点
  1. 节点的左子树小于节点本身
  2. 节点的右子树大于节点本身
  3. 左右子树同样为二叉搜索树
图例

在这里插入图片描述

二叉搜索树是均衡二叉树的基础,我们看一下它的搜索步骤如何。我们要从二叉树中找到值为 58 的节点。

第一步:首先查找到根节点,值为 60 的节点。

在这里插入图片描述

第二步:比较我们要找的值 58 与该节点的大小。

如果等于,那么恭喜,已经找到;如果小于,继续找左子树;如果大于,那么找右子树。

很明显 58<60,因此我们找到左子树的节点 56,此时我们已经定位到了节点 56。

在这里插入图片描述

第三步:按照第二步的规则继续找。

58>56 我们需要继续找右子树,定位到了右子树节点 58,恭喜,此时我们已经找到了。

在这里插入图片描述

我们经过三步就已经找到了,其实就是我们平时所说的二分查找,这种二叉搜索树好像查找效率很高,但同样它也有缺陷,如下面这样的二叉搜索树。

在这里插入图片描述

看到这样的二叉搜索树是否很别扭,典型的大长腿瘸子,但它也是二叉搜索树,如果我们要找值为 50 的节点,基本上和单链表查询没多大区别了,性能将大打折扣。

这个时候我们的均衡二叉树就粉墨登场了,均衡二叉树就是在二叉搜索树的基础上添加了自动维持平衡的性质。

上面的大长腿瘸子二叉搜索树经过自动平衡后,可能就成为了下面这样的二叉树。

在这里插入图片描述

经过了自动平衡,再去找值为 50 的节点,查找性能将提升很多。红黑树就是非严格均衡的二叉搜索树。

红黑树规则特点

红黑树具体有哪些规则特点呢࿱
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值