面试之--B树,B+树,红黑树

本文介绍了三种重要的数据结构:B-Tree具有每个节点最多包含m个孩子,除根节点和叶节点外的其他节点至少有ceil(m/2)个孩子的特性,适合高效查找;B+Tree是B树的变体,所有数据都在叶节点,适合数据库索引;红黑树则是一种自平衡二叉查找树,保证了操作的时间复杂度为O(logn),特别适用于动态查找表和数据库索引。
摘要由CSDN通过智能技术生成
  1. B-Tree

根节点至少包括两个孩子

树中每个节点最多含有m个孩子(m>=2) (限定深度)

除根节点和叶节点外,其他每个节点至少有ceil(m/2)个孩子,ceil取上限

K[n]为关键字,P[m]为结点指向数量,p代表的是指针,k代表的关键字

a:ki(i=1…n)为关键字,且关键字按顺序升序排序K(i-1)<Ki

b:关键字的个数n必须满足:ceil(m/2)-1<=n<=m—1

c:非叶子结点的指针:p[1],p[2],…p[M];其中p[1]指向关键字小于K[1]的子树,

P[M]指向关键字大于K[M-1]的子树

查找效率 O(logn)

2.B+Tree

B+树是B数的变体,其定义基本与B树相同,除了:

非叶子节点的子树指针与关键字个数相同

非叶子节点(树枝第二个节点)的子树指针P[i],指向关键字值[K[i],K[i+1])的子树

非叶子子节点仅仅用来索引,数据都保存在叶子子节点中

所有叶子节点均有一个链指针指向下一个叶子结点

B+Tree更适合用来做存储索引

B+Tree查询更稳定,稳定的O(logN)

B+Tree更有利于对数据库的扫描,有利于范围查询。

3.红黑树特点:

  • 时间复杂度O(logn)

  • 根节点必须是黑色的

  • 不能出现相邻的红色节点,红色节点不能有红色子节点或父节点。

添加节点

  • recolor(重新标记)如果x的parent红色,uncle红色,则标记p,u为黑色,g为红色,若为根节点则为黑色。只要符合规则就会一直重复执行。

  • Rotation(旋转、提拉)如果parent红色,uncle黑色,分为左左,左右,右左,右右,只要符合规则就会一直重复执行。

重标记

旋转-左左

旋转-左右

旋转-右右

旋转-右左

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞬间的醒悟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值