首页 > 其他分享 >数据结构-B树和B+树

数据结构-B树和B+树

时间:2024-10-17 18:19:39浏览次数:15  
标签:链表 遍历 value 叶子 key 数据结构 节点

一、B树

一个节点包含多个key-value值

假设一棵B树由M个参数构建,我们将其称为M阶B树

        每个节点最多有M-1个key-value值,并且key值升序排列,每个节点最多能有M个叉

1.1 分类

二节点

三节点

四节点

五节点

key:  给每一个文件进行标号(主键)

value:  页(存储数据的地址)

1.2 例子

例:构建5阶B树

1.3 优点

        每一个节点都包含key和value,根据key找value时,只需找到key值,value就可以找到。 

而B+树只有遍历到叶子节点才能找到 value值。


二、B+树

B+树的非叶子节点仅具有索引作用,也就是说非叶子节点只存储key值,不存储value值

B+树的所有叶子节点构成一个有序链表。

优点:

B+树的叶子节点不包含value值,只做索引使用,所以节点大小相同的情况下,B+树的非叶子节点能存放更多的key值,树的高度越低。

B+树的叶子节点构成了有序链表,所以遍历整棵树只需要遍历叶子节点即可,便于区间查找。

例子

构建5阶B+树:

标签:链表,遍历,value,叶子,key,数据结构,节点
From: https://blog.csdn.net/m0_75163045/article/details/143025328

相关文章

  • 【数据结构】之数组详解
    数组是数据结构中最基础的概念之一,它在编程中被广泛应用。理解数组的工作原理、操作方式以及底层实现,对于我们构建更复杂的数据结构和算法至关重要。本文将从多个角度深入剖析数组,并以Java语言示例进行讲解,帮助你建立对数组的深刻理解。一、什么是数组?数组是一种线性数据结构......
  • Topk问题与堆排序(Java数据结构)
    前言:    接触完堆之后,也逐渐对堆了如指掌,最后再来讨论一下两个问题。    有如下场景:    1、全国有几千所大学,我如何能够快速找出排名前10的大学?    2、我如何对这10所大学排好序?    为了用堆解决问题,接下来我们就来一起学习Top......
  • Java数据结构二叉树面试题精华(画图详解)
    前言:    针对二叉树,因为涉及到递归,需要跟多的练习强化递归的思想,其中也包括需要画图理解一些想不通的问题来提升自己!    一下面这些题为例,一起来提升自己的逻辑思维能力!(可能其中一些题已经写过,但是希望能再写一遍有助于提高代码能力)相同的树:      ......
  • 数据结构八大排序的java实现
    冒泡排序package排序;importjava.util.Arrays;publicclassBubbleSort{   publicstaticvoidmain(String[]args){      int[]arr={5,7,4,2,0,3,1,6};      sort(arr);      System.out.println(Arrays.toString(arr));   }......