定义:(以下来自百度百科)
(2)除根节点外,每个节点至少有floor(m/2)个子女,根节点至少有两个子女;
(3)有k个子女的节点必有k个关键字。
个人理解:
网上对B+树的定义各不相同,如有的说有k个子女的节点必有k-1个关键字,如我研究树结构时常用的网站https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html就是如此,甚至百度百科自己也有自相矛盾的说法,如下:
在定义中它说每个节点最多有m个子女,有k个子女的节点必有k个关键子,但在节点结构中又说除了根节点外的每个节点最多m-1个元素,确实让人看着头大...
但这种小细节不影响,自己理解就好,本文按百度百科的定义来行文
B树与B+树的不同点:
1. 每个节点的关键字数和子节点数的对应关系不同
B树: 每个节点的关键字数加1等于子节点数
B+树:每个节点的关键字数等于子节点数
2. 每个节点包含的关键字数不同
B树: 最少包含floor(m/2)个,最多包含m个
B+树:最少包含ceil(m/2)-1,最多包含m-1个
3. 数据存储方式不同
B树: 非叶子节点中也包含数据信息
B&