python 红黑树_红黑树的原理及python简单实现

了解红黑树之前需要先了解一种树:2-3查找树。2-3查找树为了保证二叉查找树的平衡性,需要一些灵活性,因为我们允许树中的一个结点保存多个键。确切的说,将一棵标准的二叉查找树中的结点称为2-结点(含有一个键和两条链),而现在我们引入3-结点,它含有两个键和三条链。2-结点和3-结点中的每条链都对应着其中保存的键所分割产生的一个区间。定义:一颗2-3查找树要么为空,要么满足下面两个要求:2-结点:含有...
摘要由CSDN通过智能技术生成

了解红黑树之前需要先了解一种树:2-3查找树。

2-3查找树

为了保证二叉查找树的平衡性,需要一些灵活性,因为我们允许树中的一个结点保存多个键。确切的说,将一棵标准的二叉查找树中的结点称为2-结点(含有一个键和两条链),而现在我们引入3-结点,它含有两个键和三条链。2-结点和3-结点中的每条链都对应着其中保存的键所分割产生的一个区间。

定义:一颗2-3查找树要么为空,要么满足下面两个要求:

2-结点:含有一个键(及其对应的值)和两条链,左连接指向2-3树中的键都小于该结点,右连接指向的2-3树中的键都大于该结点。

3-结点:含有两个键(及其对应的值)和三条链,左连接指向的2-3树中的键都小于该结点,中连接指向的2-3树中的键都位于该节点的两个键之间,右连接指向的2-3树中的键大于该结点。

2-3查找树实现起来比较复杂,在某些情况下插入后的平衡操作可能会使得效率降低。但是2-3查找树作为一种比较重要的概念和思路对于红黑树,B树和B+树非常重要。

红黑树

红黑树主要对2-3树进行编码,红黑树背后的基本思想是用标准的二叉查找树(完全由2-结点构成)和一些额外的信息(替换了3-结点)来表示2-3树。将树中的连接分为两种类型:

红链接:将两个2-结点连接起来构成一个3-结点。

黑链接:则是2-3树中的普通连接。

确切的说,我们将3-结点表示为由一条左斜的红色链接(两个2-结点 其中之一是另一个的左子结点)链接的两个2-结点。这种表示法的一个优点是:我么无需修改就可以直接使用标准的二叉查找树的get方法。

定义:红黑树是含有红黑连接并满足下列条件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值