B树与B+树

本文介绍了树的基本概念,包括结点度、树的度、根节点、叶子节点等,并详细阐述了二叉树、完全二叉树、满二叉树、二叉搜索树、AVL树和红黑树等类型。接着,重点讨论了B-树和B+树,包括它们的定义、特点和区别。B-树是一种多叉平衡查找树,适合外部查找,而B+树增加了叶子节点间的链接,更利于范围查找。
摘要由CSDN通过智能技术生成

树的基本概念

在这里插入图片描述

  1. 结点的度:一个结点含有的子结点个数称为该结点的度;
  2. 树的度:一棵树中,最大结点的度称为树的度;
  3. 根节点:没有父节点的节点为根节点;
  4. 叶子节点(树叶):没有子节点的节点叫做叶子节点;
  5. 父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点;
  6. 深度:对于任意结点n,n的深度为从根到n的唯一路径长,根结点的深度为0;
  7. 高度:对于任意结点n,n的高度为从n到一片树叶的最长路径长,所有树叶的高度为0;

树的分类

  • 二叉树:每个父节点最多之哟两个子节点;
  • 完全二叉树:每个腹肌欸但都有两个子节点,且叶子节点的深度差最大为1,叶子节点靠左排列。
  • 满二叉树:每个父节点都有两个子节点,且叶子节点的深度相同;满二叉树属于完全二叉树。
  • 二叉搜索树(BST):属于二叉树的一种,父节点的左边子节点的值小于父节点,父节点右边子节点的值大于父节点的值。
  • AVL树(平衡二叉树):每个节点的左右子节点的高度差<=1。为二叉搜索树的一种;
  • RBT(平衡二叉树):每个节点的左右子节点的深度差小于1倍。为二叉搜索树的一种。
  • B树:分为B+树和B-树的一种、

B-树

B-树,也称为B树,是一种平衡的多叉树(可以对比一下平衡二叉查找树),它比较适用于对外查找。看下这几个概念哈:

  • 阶数:一个节点最多有多少个孩子节点。(一般用字母m表示),可以理解为容量大小。
  • 关键字:节点上的数值就是关键字
  • 度:一个节点拥有的子节点的数量。

一颗m阶的B-树,有以下特征:

  • 根结点至少有两个子女;
  • 每个非根节点所包含的关键字个数 j 满足:⌈m/2⌉ - 1 <= j <= m - 1.(⌈⌉表示向上取整)
  • 有k个关键字(关键字按递增次序排列)的非叶结点恰好有k+1个孩子。
  • 所有的叶子结点都位于同一层。

一棵简单的B-树如下:

在这里插入图片描述

B+树

B+ 树简介

B+树是B-树的变体,也是一颗多路搜索树。一棵m阶的B+树主要有这些特点:

  • 每个结点至多有m个子女;
  • 非根节点关键值个数范围:⌈m/2⌉ - 1 <= k <= m-1
  • 相邻叶子节点是通过指针连起来的,并且是关键字大小排序的。

B+树和B-树的对比

B+树和B-树的主要区别如下:

  • B-树内部节点是保存数据的;而B+树内部节点是不保存数据的,只作索引作用,它的叶子节点才保存数据。
  • B+树相邻的叶子节点之间是通过链表指针连起来的,B-树却不是。
  • 查找过程中,B-树在找到具体的数值以后就结束,而B+树则需要通过索引找到叶子结点中的数据才结束
  • B-树中任何一个关键字出现且只出现在一个结点中,而B+树可以出现多次

借鉴地址:链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

四库全书的酷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值