TIPS:考研中的难点与重点,侧重于考查B树的性质,插入,查找与删除。而对于B树的代码,一般情况下不要求掌握。
我们主要关注的是B树的性质和B树的手算方法。(插入删除操作)
两个概念:
终端结点:下面的含有实际数据的结点,称为终端节点。
叶子结点:最下面的这些失败结点,称为叶子结点。
B树,又称为多路平衡查找树(基于二叉查找树)。
B树中所有结点的孩子个数最大值,称为B树的阶,通常用M表示。
一颗M阶B树,要么是一棵空树,要么为满足如下特性的M叉树:
1,树中每个结点,至多有M棵子树(即M个分支)==至多含有M-1个关键字。
2,若根结点不是终端结点,则至少有两颗子树。
3,除了根结点外的所有非叶结点至少有(向上取整)棵子树,即至少含有
。
4,所有的叶结点都出现在同一层次上,并且不带信息(可以视为外部结点,或者是类似于折半查找判定树的失败结点,实际上这些结点不存在,指向这些结点的指针为空)。
B树的核心特性:
TIPS:大部分学校算B树的高度,都不包括叶子结点,也就是失败结点。
TIPS:首先在求这个问题之前,需要搞清楚一个老生常谈的核心二叉树考点:具有N个结点的完全二叉树的高度为:_________???
高度为h的满二叉树,共有2^h -1个结点;那么此时结点个数N和高度h的关系为:
则h>=log2 (n+1);又因为h高度为整数,所以高度h可以表示为:(向上取整)。