第七章第二节:B树和B+树

news2024/10/7 10:23:45

文章目录

  • 教程:
  • 1. B树
    • 1.1 B树的定义
    • 1.2 B树的高度
    • 1.3 B树的插入和 删除
    • 1.4 B树的删除
    • 1.5 总结:
  • 2. B+树
    • 2.1 B+树的查找
    • 2.2 B+树与B树的对比
    • 2.3 总结

教程:

  1. B树: https://www.bilibili.com/video/BV1b7411N798/?p=72&share_source=copy_web&vd_source=d228985826b563972268952905224139
  2. B+树: https://www.bilibili.com/video/BV1b7411N798/?p=74&share_source=copy_web&vd_source=d228985826b563972268952905224139

1. B树

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


1.1 B树的定义

在这里插入图片描述
B树,又称多路平衡查找树,B树中所有结点的孩子个数的最大值称为B树的阶,通常用m表示。一棵m阶B树或为空树,或为满足如下特性的m叉树:

  • 树中每个结点至多有m棵子树,即至多含有m-1个关键字。
  • 若根结点不是终端结点,则至少有两棵子树。
  • 除根结点外的所有非叶结点至少有「m/2]棵子树,即至少含有[m/2]-1个关键字
  • 所有的叶结点都出现在同一层次上,并且不带信息(可以视为外部结点或类似于折半查找判定树的查找失败结点,实际上这些结点不存在,指向这些结点的指针为空)。
    所有非叶结点的结构如下:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 B树的高度

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结:
在这里插入图片描述

1.3 B树的插入和 删除

在这里插入图片描述
在这里插入图片描述
如果要插入80;溢出
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
插入90;
在这里插入图片描述
在这里插入图片描述
插入99;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
插入83,87,再插入70;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
核心:
在这里插入图片描述

1.4 B树的删除

要删除60这个关键字:
在这里插入图片描述
在这里插入图片描述
要删除80;
在这里插入图片描述


在这里插入图片描述


删除77;
在这里插入图片描述

对非终端结点关键字的删除,必然可以转化为对终端
结点的删除操作

如果删除38这个元素,低于下限;
在这里插入图片描述


在这里插入图片描述


删除90;
在这里插入图片描述

在这里插入图片描述


删除49;
在这里插入图片描述
在这里插入图片描述

1.5 总结:

在这里插入图片描述

2. B+树

在这里插入图片描述


在这里插入图片描述


2.1 B+树的查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 B+树与B树的对比

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解MySQL数据库(Innodb存储引擎)

1.BTree 什么是B Tree 1)树中每个结点至多有M棵子树(即至多含有m-1个关键字) 2)若根节点不是终端结点,则至少有两颗子树 3)所有的叶子结点都出现在同一层次上,并且不带信息 什么是BTree …

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程仿真工程源代码答辩论文答辩PPT) 文章目录【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程仿真工程源代码答辩论文答辩PPT)资料下载链接任务书设计说…

Redis集群(Cluster)

Redis集群(Cluster) 单台redis容量限制,如何进行扩容?继续加内存、加硬件么?单台redis并发写量太大有性能瓶颈,如何解决?redis3.0中提供了集群可以解决这些问题。 redis集群是对redis的水平扩容,即启动N个…

静态后台管理(9页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 |学生管理系统网页设计 | OA管理系统 | 后台管理模板 | 智能停车系统 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网页 H…

C++ Visual Studio 2022 中的改进、行为更改和错误修复

目录 Visual Studio 2022 版本 17.4 中的一致性改进 作用域的基础类型没有固定类型enum 定义中没有固定基础类型的枚举器类型enum Visual Studio 2022 版本 17.3 中的一致性改进 改进了指针之间的修饰符兼容性检查 Visual Studio 2022 版本 17.2 中的一致性改进 未终止的双向…

【分隔结构】定从分离

形式 先行词 其他定语 定语从句先行词 状语 定语从句作主语的先行词 谓语 定语从句 练习一 他们从一部分人来说,是受到了 1998 年才获得的 DNA 证据的启发,这份 DNA 证据,几乎肯定的证明了 Thomas Jefferson 和 他的奴隶 Sally Hemin…

力扣(LeetCode)16. 最接近的三数之和(C++)

双指针 快排使 numsnumsnums 正序。 设置三个指针 iii 指向 numsnumsnums 第一个数,从前往后枚举 nums[i]nums[i]nums[i] , lll 从 nums[i1]nums[i1]nums[i1] 往后,指向第二个数,rrr 从 nums.size()−1nums.size()-1nums.size()…

【博客539】使用openssl手动为k8s集群签发证书

使用openssl手动为k8s集群签发证书 创建ca私钥和ca证书 1、生成ca私钥:生成一个 2048 位的 ca.key 文件 openssl genrsa -out ca.key 2048 2、基于ca私钥,生成根(root)证书:在 ca.key 文件的基础上,生成 ca.crt 文件 openssl re…

[MQ] 交换机与队列的介绍

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

[Spring Cloud] Open Feign 使用

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

机械设计基础试题3

一、判断题(请在后面的括号中,正确的填√,错误的填) (20分) 1. 如果机构的自由度F=2,则机构无确定性运动。 ( ) 2. 作相对运动的三个构件的三个瞬心不一定在一…

JavaEE 进阶:Spring 的创建和使用

文章目录前言一、创建 Spring 项⽬1、创建⼀个 Maven 项⽬2、添加 Spring 框架⽀持3、添加启动类二、存储 Bean 对象1、创建 Bean2、将 Bean 注册到容器三、获取并使⽤ Bean 对象1、创建 Spring 上下⽂① ApplicationContextⅠ 注意事项② BeanFactory③ ApplicationContext VS…

【浅学Java】Bean的作用域和生命周期

Bean的作用域和生命周期1. Bean的作用域1.1 什么是Bean的作用域1.2 Bean的6种作用域singleton——单例作用域prototype——多例作用域request——请求作用域session——会话作用域application——全局作用域(了解)websoccket——HTTP WebSocket作用域(了解)1.3 设置作用域2. Be…

计算机毕业设计node.js+vue+Element企业员工信息管理系统

项目介绍 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化、网络化和电子化。本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用node框架和node来完成对系统的设计。整个开发过程首先对企业员工管理系统进行需求分…

LVS-NAT模式部署

目录 一、环境准备 1、准备三台centos服务器 2、实验拓扑 3、NAT模式介绍 二、LVS-NAT模式部署 1、给lvs服务器安装LVS 2、新建LVS集群 3、添加Real Server服务器节点 4、开启路由转发 5、给后端web服务器配置网关 6、效果测试 一、环境准备 1、准备三台centos服务器…

ctfhub-web-warmup

打开题目链接 是一张图 查看源代码 提示source.php 访问这个文件 得到源码 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php…

Java毕业设计项目_企业级实战全栈项目中信CRM

【教程、代码】文章底部 1.学习目标视频教程目录【教程、代码】文章底部2.CRM 系统概念与项目开发流程2.1. CRM基本概念 圈内存在这么一句话&#xff1a;“世上本来没有CRM&#xff0c;大家的生意越来越难做了&#xff0c;才有了CRM。”在同质化竞争时代&#xff0c;顾客资产尤…

[附源码]java毕业设计社区医院管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

RabbitMQ初步到精通-第六章-RabbitMQ之死信队列

目录 第六章-RabbitMQ之死信队列 1. 死信概念 2. 死信架构 3. 死信来源 3.1 消息 TTL 过期 3.2 队列达到最大长度&#xff08;队列满了&#xff0c;无法再添加数据到 mq 中&#xff09; 3.3 消息被拒绝&#xff08;basic.reject 或 basic.nack&#xff09;并且 requeuefa…

基于stm32单片机的智能恒温箱游泳池

资料编号&#xff1a;104 下面是相关功能视频演示&#xff1a; 104-基于stm32单片机的智能恒温箱游泳池控制系统Proteus仿真&#xff08;源码仿真全套资料&#xff09;功能介绍&#xff1a; 采用stm32单片机&#xff0c;程序可以设置最高值和最低值&#xff0c;当温度超过最高…