本文主要是介绍B树(Balanced-tree),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
B-树是一种多路搜索树(并不一定是二叉的)。
如果有更多的分支,那么就有更少的高度。这样,31个节点的理想二叉树(perfect binary tree)有5层,而31个节点的5叉树则只有3层,一颗M叉查找树可以有M路分支。随着分支增加,树的深度在减小。一颗完全二叉树(complete binary tree)的高度大约为log2N,而一颗完全M叉树(complete M-ary tree)的高度大约是logMN。
31个节点的5叉树只有3层:
阶为M的B树是一颗具有下列特性的树:
1)数据项存储在树叶上。
2)非叶节点存储直到M-1个关键字以指示搜索的方向;关键字i代表子树i+1中的最小的关键字。
3)树的根或者是一片树叶,或者其儿子树在2和M之间。
4)除根外,所有非树叶节点的儿子树在M/2值的上界和M之间。
5)所有的树叶都在相同的深度上并有L/2值的上界和L之间个数据项,L的确定稍后描述,L(分裂数,到达这个数时分裂叶子)。
下图,注意:所有的非叶子节点的儿子树都在3和5之间(从而有2到4个关键字);根可能只有两个儿子。这里我们有L=5(在这个例子中L和M恰好是相同的,但这不是必须的)。由于L是5
这篇关于B树(Balanced-tree)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!