多路查找树

数据结构与算法之多路查找树 阅读详情

一.定义
二叉排序树简单的实现在多数情况能够达到预期的查找效率,但是每个节点只能存储一个元素和只能有两个孩子,使得在大量数据下会造成二叉排序树的深度特别大,那么在进行查找时多次的访问会造成查找效率的下降,同时,在对二叉查找树进行插入时,可能会破坏二叉查找树的平衡。为了降低对于树的访问次数,实现树的平衡,我们需要新的数据结构来处理这样的问题。
多路查找树的每一个节点的孩子树可以多于两个,且每个节点处可以存储多个元素。多路查找树是一种特殊的查找树,所以其元素之间存在某种特定的排序关系

二.2-3树
每个节点都具有2个孩子(称之为2节点)或者3个孩子(称之为3节点)
一个2节点包含一个元素和两个孩子(或没有孩子)
一个3节点包含两个元素和三个孩子(或没有孩子)
在这里插入图片描述
(一).插入实现
1.对于空树 插入一个节点直接插入就好
2.插入节点到一个2节点的叶子上
比如插入3
在这里插入图片描述
3.将一个节点插入到原来3节点的叶子上
3.1要在3节点上插入,此时3节点的上面是2节点 则将 上面的2节点变成3节点 比如插入5
在这里插入图片描述
3.2 要在3节点上插入,此时3节点上面是3 节点 则将上面首次出现为2节点的节点变成3节点。比如插入11
在这里插入图片描述
3.3 要在3节点插入数据时 ,该3节点往上遍历都是3节点,这时要扩展高度了
在这里插入图片描述
(二).删除实现
1.要删除的数位于3节点地址上。 3节点 ->2节点就好 比如删除6
在这里插入图片描述
在这里插入图片描述
2.要删除的数位于2叶子节点上
2.1此叶子节点上一级是2节点,但是他有一个3节点的有孩子。
在这里插入图片描述
2.2此叶子节点上一级是2节点,但是他有一个2节点的有孩子。
在这里插入图片描述
2.3此叶子节点双亲是一个3节点。
在这里插入图片描述
2.4删除的是一个满二叉树叶子节点
在这里插入图片描述
2.5要删除的元素位于非叶子节点的分支上。
①当是2节点时 则按照中序遍历 找此节点前面或者后面的数顶底下。
在这里插入图片描述
②当是3 节点的时候 将3节点的左孩子提升上去
在这里插入图片描述

三.2-3-4树
2-3-4树是对2-3树的概念扩展,包括了4节点的使用。一个4节点中包含小中大三个元素和四个孩子(要么有四个孩子要么没有,不存在其他情况)

四.B树
2-3树和2-3-4树是B树的特例
在这里插入图片描述

在这里插入图片描述
五.总结
1.先找插入结点,若结点有空(即2-结点),则直接插入。如结点没空(即3-结点),则插入使其临时容纳这个元素,然后分裂此结点,把中间元素移到其父结点中。对父结点亦如此处理。(中键一直往上移,直到找到空位,在此过程中没有空位就先搞个临时的,再分裂。)

2.2-3树插入算法的根本在于这些变换都是局部的:除了相关的结点和链接之外不必修改或者检查树的其他部分。每次变换中,变更的链接数量不会超过一个很小的常数。所有局部变换都不会影响整棵树的有序性和平衡性。

3.同时,通过上面树的深度增加的例子,可以看出2-3树和标准二叉树不同,标准的二叉树的的深度是由上到下的增加的,而2-3树的深度生长是由下至上的。

多路查找树开篇 1、引言         以前我们所讨论的数据结构,处理数据都是在内存中。假如我们所要操作的数据集非常大,大到内存无法处理了怎么办?如数据库上千万记录的数据表、硬盘中上万个文件等。在这种情况下,对数据的处理需要不断的从硬盘等存储设备中调入或者调出内存页面。而过多的进行IO读写,显然会降低系统的效率。为了降低对外存的访问次数,我们就需要新的数据结构来处理这样的问题。 2、2-3树 阅读详情

相关推荐

查找--多路查找树(B树)

待完成

weixin_44315921的博客 4859

大话数据结构-查找-多路查找树

对多路查找树进行介绍,主要介绍了根据数组生成2-3树、2-3-4树、B+树,以及从2-3树、2-3-4树和B+树中删除元素的原理以及代码实现。

村长Korbin 1454

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试

基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇) 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感谢K大。能引用K大的成果也是自己的荣幸,不便之处还请K大多多包涵,在此引用只是为方便自己日常学习,部分参数表里根据自身情况,增加了修改环节和相应参数。 垂直起降固定翼 中文教程-参数设置 垂直起降固定翼是由 多轴+...

u011322358的博客 2万+

什么面试官问的B树、B+树、B*树,你还不懂?

多路查找树 1.1 二叉树与B 树 1.1.1 二叉树的问题分析 二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树 二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如 1 亿), 就存在如下问题: 问题 1:在构建二叉树时,需要多次进行 i/o 操作(海量数据存在数据库或文件中),节点海量,构建二叉树时, 速度有影响 问题 2:节点海量,也会造成二...

JeremyIverson的博客 719

python提取图片中的文字写入excel文件,并打包为exe可执行文件

python提取图片中的文字写入excel文件,并打包为exe可执行文件

liqiang12689的博客 989

Dify工作流教程|以抓取网页并更新知识库为例详细讲解工作流编排过程(附DSL文件)

{"name": "{新建的title变量}","text": "新建的content变量","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}有没有很痛苦,明明添加书签的网页,当你想阅读的时候,总是找不到或者好不容易找到了,发现网页404了。如果有个小工具,直接能把你输入的链接内容抓取下来,并且加入到你的知识库中,你说他香不香。无法获取授权的,也可以使用网页抓取工具,这个是免费的,抓取效果也可以。

同名公众号:dify实验室 1万+

【算法】- 查找 - 多路查找树(B树)

上次我们学了如何用平衡二叉树来插入和查找。这些算法都是在内存中进行,若我们要操作的数据非常大,大到内存没办法处理,这时我们就需要访问在外部的存储设备中的数据,在每次访问外部数据是都是需要消耗一定的时间,所以我们应该减少访问外部次数,这样效率就会提高,这时也就可以采用B树的结构对数据进行访问。这里我们主讲2-3树B树的应用,在内外存交换数据次数频繁,这就可以利用B树来增加效率。

2302_77182146的博客 1796

别再只插线了!用示波器‘偷看’USB-C PD协议握手全过程(附BMC/4B5B编码解析)

本文详细介绍了如何使用示波器捕获并解码USB-C PD协议的握手过程,包括BMC/4B5B编码的解析技巧。从硬件配置到波形分析,再到协议注入,为工程师提供了一套完整的实战解码手册,帮助深入理解PD协议的工作原理。

weixin_42526417的博客 404

多路查找树(MuitlWay Search Tree)

多路查找树 多路查找树(MuitlWay Search Tree) 1、二叉树的不足 我们都知道普通树或二叉树等操作效率较高,如删除、添加、查找、修改等,但是因为一个节点只能存储一个元素,所以在某种场合也存在一定的问题! 二叉树节点个数 = 2n - 1 二叉树是需要加载到内存的,如果二叉树的节点少,没有什么问题!但是如果二叉树的节点有很多(极端的情况下比如 1 亿),就会存在如下问题: 在构建二叉树时,需要多次进行 i/o 操作(海量数据存在数据库或文件中),海量的节点也会在构建二叉树时,速度有影

laizhenghua的博客 2804

ScottPlot vs LiveCharts:WPF图表库性能对比与MVVM适配方案

本文深度对比了WPF图表库ScottPlot与LiveCharts在性能与MVVM架构适配上的表现。通过十万级数据点的基准测试,ScottPlot在渲染速度与内存占用上优势显著。文章重点探讨了两种库在MVVM模式下的集成方案,为开发者根据项目需求(如实时监控或快速原型)进行技术选型提供了实战指导。

lll78的博客 245

踩坑记录:Clawdbot 对接 Minimax 报错 “401 token is unusable (1004)“ 的终极解决方案

如果你也在配置 Clawdbot 对接 Minimax 模型时,明明 API Key 是新申请的,却死活报错 `401 Unauthorized`,错误码 `1004`,提示 `token is unusable`——那么恭喜你,来对地方了。

hampeter的博客 2001

Java多路查找树(含面试大厂题和源码)

多路查找树(Multiway Search Tree),也称为B树或B+树,是一种自平衡的树形数据结构,用于存储大量数据,通常用于数据库和文件系统中。它允许在查找、插入和删除操作中保持数据的有序性,同时优化了磁盘I/O性能。

2302_80314137的博客 802

基于FPGA的TDC延迟链优化与码密度校准方法(1)——原理与实现

本文深入探讨了基于FPGA的时间数字转换器(TDC)延迟链非均匀性问题及其码密度校准方法。通过分析工艺偏差、温度电压影响等根源,详细介绍了码密度测试原理、逐位校准技术及气泡消除算法,并分享了自适应校准策略与多场景应用实践,有效提升TDC测量精度至皮秒级。

kiwi8的博客 489

树 Story —— 多路查找树

- 树 Story 第四篇 - 多路查找树 本文详细阐述了多路查找树原理,适合新手阅读,以及老手回顾。 全文三千字,阅读时间 20 分钟。 有别于二叉查找树,多路查找树的子节点不局限于 2 个,同时节点内的 key 不局限于 1个。 下面我们以 2-3 树(最简单的多路查找树)为例来讲述。 What ?! 有人可能第一次听说「2-3」树这个说法。 何为 2-3 树 ? 2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩

码农高端会所 623

Xlinx PG151 除法器IP 笔记

对Xlinx 除法器IP PG151中部分内容记录备忘。

weixin_50515160的博客 2528

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大话数据结构—多路查找树(B树)

多路查找树(muitl-way search tree),其每一个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。主要有4中特殊形式。一、2-3树定义:其中的每一个节点都具有两个孩子(称为2节点)或者三个孩子(称为3节点)。 并且2-3树中所有的叶子都在同一层上。一个2节点包含一个元素和两个孩子(或者没有孩子)。一个3节点包含一小一大两个元素和三个孩子(或者没有孩子)。 1. 2-3树

小地盘的诺克萨斯 6525

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

B树 B+树(多路查找树)的介绍、插入和删除操作

其中B树是一种自平衡的多路查找树,其每个节点可以包含多个关键字和对应的指针,且满足以下性质:多路查找树是一类特殊的树形结构,其每个节点可以包含多个关键字和对应的指针,相比于二叉查找树,可以更高效地进行查找操作。B+树是在B树的基础上进一步优化而来的一种多路查找树,它与B树的区别在于只有叶子节点存储数据,内部节点仅存储关键字和指向子节点的指针。但是,相比于二叉查找树,多路查找树的实现更为复杂,且节点的大小也更大,占用更多的存储空间。其中B树是一种自平衡的多路查找树,其每个节点可以包含多个关键字和对应的指针。

m0_58381606的博客 909

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

学习笔记:数据结构与算法(二十):多路查找树

学习笔记:数据结构与算法(二十):多路查找树定义2-3树2-3树的插入原理2-3树的删除原理2-3-4树B树 定义 多路查找树的特点是其每一个结点的孩子数可以多于两个,且每个结点处可以存储多个元素。所有元素之间存在某种特定的关系。 2-3树 多路查找树中每一个结点都具有两个孩子或者三个孩子称为2-3树。 2-3树的插入原理 插入1,正常。 插入5,需要拆分6.7 插入11,需要拆分9.10 … 如果所有的树都是三个节点,那么就需要再深一层 现在插入2,需要增加深度 2-3树的删除原理 情况1:如果删除

lelelewei的博客 232
上一篇: 平衡二叉排序树
下一篇: 图的定义
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值