多路查找树(B树)
来源:互联网 发布:淘宝国际卖家 编辑:程序博客网 时间:2024/06/04 00:31
B树
多路查找树,其每一个结点的孩子数可以多于两个,且每一个结点处可以存储多个元素。
B树(B-tree)是一种平衡的多路查找树。结点最大的孩子数目成为B树的阶(order)。
特点:
1.如果根结点不是叶结点,则其至少有两棵子树。
2.每一个非根的分支结点都有k−1 个元素和k 个孩子,其中[m/2]≤k≤m 。(注:[m/2] 表示不小于m/2 的最小整数)
3.所有叶子结点都位于同一层次。
4.所有分支结点包含下列信息数据(n,A0,K1,A1,K2,A2,...,Kn,An) ,其中:Ki 为关键字,且Ki<Ki+1 ;Ai 为指向子树根结点的指针,且Ai 所指子树中所有结点的关键字均小于Ki ,最后一个指针An 所指子树的关键字大于Kn 。n 为关键字的个数,其中[m/2]−1≤n≤m−1 。
示例:4阶的B树
对n 个关键字的m 阶B树进行查找时,从根结点到关键字结点的路径上涉及的结点树不超过log[m2](n+12)+1
B+树
在B树中,每一个元素在该树中只出现一次,有可能在叶子结点上,也可能在分支结点上。在B+树中,出现在分支结点中的元素会被当作他们在该分支结点位置的中序后继者(叶子结点)中,再次列出。另外,每一个叶子结点会保存一个指向后一叶子结点的指针。
示例:灰色关键字即是根结点中的关键字在叶子结点再次列出,并且所有叶子节点都链接在一起。
一棵m 阶的B+树和m 阶的B树的差异在于:
1.有n 棵子树的结点中包含有n 个关键字;
2.所有的叶子结点包含全部关键字的信息,及指向含这些关键字记录的指针,叶子结点本身依关键字的大小自小而大顺序链接;
3.所有分支结点可以看成索引,结点中仅含有其子树中的最大(或最小)关键字。
B+树的结构特别适合带有范围的查找。
阅读全文
0 0
- 【查找结构】多路查找树/B-树/B+树
- 多路查找树(B树)
- 多路查找树(B树)
- 多路查找树(B树)
- 多路查找树/B~树/B+树
- 多路查找树/B-树/B+树
- B树(平衡多路查找树)B-tree树
- B树(多路查找树)
- B树 平衡多路查找树
- 多路查找树(B树)
- 大话数据结构—多路查找树(B树)
- B树(平衡多路查找树)
- 查找三 多路查找树(2-3树,2-3-4树,B树、B+树)
- 查找、检索 算法-总结5 多路查找树/B~树/B+树
- 【查找结构5】多路查找树/B~树/B+树
- 【查找结构5】多路查找树/B~树/B+树
- 【查找结构5】多路查找树/B~树/B+树
- 动态查找---->B树(broad-tree 平衡多路查找树)
- 字符串转换成十进制整数
- vivo2017实习生编程题
- Python:Template使用指南
- Java List集合使用方法介绍(2)——公告管理
- C++ 简易string类实现(五)-进一步抽象
- 多路查找树(B树)
- Linux中软链接和硬链接的区别(笔记)
- 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification
- 人员签到程序
- 宏润年
- undefined和null的区别
- 用java解决大数
- BZOJ 4893 项链分赃
- <![CDATA[]]>和转义字符的使用和联系