B+树详解

作者&投稿:伯牙吾台省 (若有异议请与网页底部的电邮联系)
~ B+树是B-树的一种变形,它和B-树有很多相似之处,可以对比来记忆。

既然是B-树的一种变形,我们首先来回顾一下一棵B-树的定义:
B-树中所有结点中孩子结点个数的最大值成为B-树的阶,通常用m表示,从查找效率考虑,一般要求m>=3。一棵m阶B-树或者是一棵空树,或者是满足以下条件的m叉树。
1)每个结点最多有m个分支(子树);而最少分支数要看是否为根结点,如果是根结点且不是叶子结点,则至少要有两个分支,非根非叶结点至少有ceil(m/2)个分支,这里ceil代表向上取整。
2)如果一个结点有n-1个关键字,那么该结点有n个分支。这n-1个关键字按照递增顺序排列。
3)每个结点的结构为:

其中,n为该结点中关键字的个数;ki为该结点的关键字且满足ki<ki+1;pi为该结点的孩子结点指针且满足pi所指结点上的关键字大于ki且小于ki+1,p0所指结点上的关键字小于k1,pn所指结点上的关键字大于kn。

4)结点内各关键字互不相等且按从小到大排列。
5)叶子结点处于同一层;可以用空指针表示,是查找失败到达的位置。

在给出B+树和B-树的不同之前,我们先给出一个例子让大家直观感受下二者的不同:

可以看到,m阶B+树和B-树的差别主要体现在:
1)在B+树中,具有n个关键字的结点有n个分支,而在B-树中,具有n个关键字的结点含有n+1个关键字。
2)在B+树中,每个结点(除根结点外)中的关键字个数n的取值为ceil(m/2) <= n <=m,根结点的取值范围为1<=n<=m,他们的取值范围分别是ceil(m/2) -1<= n <=m-1和1<=n<=m-1。
3)在B+树中叶子结点包含信息,并且包含了全部关键字,叶子结点引出的指针指向记录。
4)在B+树中的所有非叶子结点仅起到一个索引的作用,即结点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址,而在B-树中,每个关键字对应一个记录的存储地址。


汉字“树”是什么意思树字笔画顺序
树shù木本植物的通称:树木。树林。树大根深种植,培育:树艺。树荆棘得刺,树桃李得荫立,建立:树立。树敌量词,相当于“株”、“棵”:一树梅花姓笔画数:9;部首:木;笔顺编号:123454124笔画顺序:横竖撇捺折捺横竖捺详解树_shù【动】声。本义:栽树)同本义〖planttrees〗树,生植之总名。...

【我是一棵树】二叉树详解(一)
1.每个节点最多有两棵子树,所以二叉树中不存在度大于2的节点。2.左、右子树是有顺序的,次序不能颠倒。3.即使书中某节点只有一棵子树,也要区分它是左子树还是右子树。对一棵具有n个节点的二叉树按程序编号,如果编号为i(1<=i<=n)的节点与同样深度的满二叉树总编号为i的节点在二叉树中位置...

绿化树木品种有哪些(路边10种最常见的树详解)
黄葛树黄葛树在佛经里被称之为神圣的菩提树。茎干粗壮,树形奇特,悬根露爪,蜿蜒交错,古态盎然。树叶茂密,叶片油绿光亮。枝杈密集,大枝横伸,小枝斜出虬曲。为阳性树种,喜温暖、高温湿润气候,耐旱而不耐寒,耐寒性比榕树稍强。黄葛树抗风,抗大气污染,耐瘠薄,对土质要求不严,生长迅速,萌发力...

红黑树详解
实际中红黑树的应用是很多的,比如JDK(Java开发工具包)的集合类TreeMap和TreeSet底层就是红黑树实现的,在Java8中,HashMap也用到了红黑树。其实关于红黑树自平衡的调整,插入和删除节点时涉及到的情形一一展开讲解还是很多很多的,但是万变不离其中,红黑树自平衡调整的主体思想都是上面所叙述的,大...

线段树详解
线段树就是分块思想的树化,或者说是对于信息处理的二进制化——用于达到O(logn)级别的处理速度。而分块的思想,则是可以用一句话总结为:通过将整个序列分为有穷个小块,对于要查询的一段区间,总是可以整合成k个所分块与m个单个元素的信息的并(0≤k,m≤sqrt{n})。但普通的分块不能高效率地...

一文读懂进化树(图文详解)
有根树:上面的图就是有根树,可以从树中找到共同的祖先。无根树:顾名思义,没有根,也就找不到共同的祖先。比如后边会提到的 Straight Tree 每个结点代表一个分类单元,物种上可以是属,种群等,基因上可以是基因家族,同源物等。但是,也有另外一种解释:这种解释将 node 分为 外部节点与内部节点...

详解进化树
构建步骤如下:首先,利用TASSEL将VCF数据转换为Phylip格式,然后通过MEGA7进一步转化为MEGA兼容的文件。打开MEGA,导入你的mega文件,选择进化树的构建方法,如邻接法(NJ)或最大似然法(ML)。设置参数,如Bootstrap重复次数、进化模型和处理缺失数据的方式,如图1-5所示。一旦设置完毕,点击"compute"按钮,...

家门口种什么树风水好 门口种树风水详解
据悉,桂花树种植史已有2500多年之久,古时就有“桂花树门前,贵人立门内”的探究,且古人也会将桂花树和玉兰、海棠等一同栽种,寓意非常好,如“兰桂齐芳”寓意子孙后代富贵兴旺,能够考取功名。2、榆树。榆通“余”,讲究年年有余,这是一种很好的寓意,表示每年都能够存上钱,不缺钱花,因此民间...

灾厄逆刃技能树详解
灾厄逆刃技能树详解技能树目前有五个主要分支。首先购买先前的技能即可解锁下一个技能。解锁的技能永远与我们同在。以下是解锁和说明顺序的各个分支机构的技能列表。第一分支橡木皮肤-增加最大hp +1粉碎到地面-如果您转移到地面,则会产生冲击波,造成伤害。阻力-最大马力+2脏巴里-更强大的左轮手枪。第二...

侧柏树长什么样子(详解侧柏和柏树的区别)
侧柏幼树的树冠呈尖塔状,老树呈广圆状。树皮呈淡灰褐色且较薄,有条状的纵向裂痕。生鳞叶的小枝呈直展状或斜展状,扁平生长形成一个平面。侧柏为雌雄同株,雌球的花类似球形,直径2mm左右,颜色为蓝绿色,被白粉。雄球花是黄色的,形状为卵圆形,雄球长度2mm左右。侧柏球果类似于卵圆形长度1.5-2....

灵宝市19326381984: B+树(树形数据结构) - 搜狗百科
米宏蛇胆: B+ 树是一种树数据结构,是一个n叉树,每个节点通常有多个孩子,一颗B+树包含根节点、内部节点和叶子节点.根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点.B+ 树通常用于数据库和操作系统的文件系统中.NTFS, ReiserFS, NSS, XFS, JFS, ReFS 和BFS等文件系统都在使用B+树作为元数据索引.B+ 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度.B+ 树元素自底向上插入.

灵宝市19326381984: 简述B - 树和B+树的区别
米宏蛇胆: B-树 是一种多路搜索树(并不是二叉的),一颗m阶的B-树,或为空树,或者: 1.定义任意非叶子结点最多只有M个儿子;且M&gt;2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上...

灵宝市19326381984: 数据结构中B树、B+树的区别 -
米宏蛇胆:[答案] 这两种处理索引的数据结构的不同之处:1.B树中同一键值不会出现多次,并且它有可能出现在叶结点,也有可能出现在非叶结点中.而B+树的键一定会出现在叶结点中,并且有可能在非叶结点中也有可能重复出现,以维持B+树的平衡...

灵宝市19326381984: B - tree的B+树是什么?
米宏蛇胆: 而B+树的键一定会出现在叶结点中,并且有可能在非叶结点中也有可能重复出现,以维持B+树的平衡

灵宝市19326381984: 举例说明oracle数据库中B树索引的基本组织结构 -
米宏蛇胆: B树即二叉搜索树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键...

灵宝市19326381984: 如何构造B+树 -
米宏蛇胆: 先给你之前我写得一篇文章做下参考: http://blog.csdn.net/v_JULY_v/article/details/6530142.请采纳.

灵宝市19326381984: mysql innodb 有哪些索引类型 -
米宏蛇胆: 1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理2、hash索引:a 仅仅能满足"=","IN"和""查询,不能使用范围查询 b 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引 c 只有Memory存储引擎显示支持hash索引3、FULLTEXT索引(现在MyISAM和InnoDB引擎都支持了)4、R-Tree索引(用于对GIS数据类型创建SPATIAL索引)

灵宝市19326381984: 请高手解释一下Oracle的数据库树的功能是什么?谢谢! -
米宏蛇胆: 树在oracle数据库中主要用来做索引.oracle数据库中树类型的索引是又矮又胖的B+树索引,这样可以使平均查找次数最少,提高数据库的性能.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网