以节点为单位进行查找适用于存储在内存中的较小文件,叫做内查找。如果文件很大还用内查找需要频繁的进行内、外存进行交换,很麻烦。B-Tree(平衡多叉树)是一种适用于外查找的数据结构,一般用于磁盘系统管理以及数据库索引组织。
平衡树:左右子树的深度之差绝对值不超过1,并且左右子树都是平衡树,控制平衡的原因就是要一视同仁,查找次数取决于深度,这样能控制查找次数差。
定义
一颗m阶的B-树有以下特征:
- 每个节点最多有m颗子树。
- 根结点不是叶子结点至少两颗子树。
- 除根结点外所有非终端结点至少有m/2向下取整颗子树。
- 所有非终端结点最多有m-1个关键字。
- 关键字左边指针指向的子树所有关键字均小于关键字,右边的均大于关键字。
2<=非叶子根节点拥有子数<=m
m/2向下取整<=除根结点外所有非终端结点拥有子数<=m