【笔记】
一棵B树T是具有以下性质的有根树:
1) 每个节点x有以下域:
a) n[x],当前存储在结点x中的关键字数
b) n[x]个关键字本身,以非降序存放
c) leaf[x]一个布尔值,如果x是叶子的话,它为TRUE
2) 每个结点x还包含n[x]+1个指向其子女的指针c_1[x],c_2[x],…,c_{n[x]+1}[x]。
3) 个关键字key_i[x]对储存在各子树中的关键字范围加以分割。
4) 每个叶结点具有相同的深度,即树的高度h。
5) 每个叶结点包含的关键字数有一个上下界。用最小度数t>=2来表示。
a) 非根的结点至少有t-1个关键字,非根的内结点至少有t个子女。非空树的根结点至少有一个关键字。
b) 每个结点可包含至多2t-1个关键字。
t=2时,2-3-4树。
B树的高度
如果n>=2,则对任意一棵包含n个关键字、高度为h、最小度数t>=2的B树T,有:h <= log_t { (n+1)/2 }
【练习】
18.1-1 为什么不允许B树的最小度数T为1?
若度为一,则至少有0个关键字,至多有1个关键字,就是个链。
18.1-2 t应取什么样的值,才能使图中的树是棵合法的B树。
图中至少有2个子女,最多有4个子女。因此t=2。
18.1-3 请给出表示{1,2,3,4,5}的最小度数为2的所有合法的B树。
略。
18.1-4 一棵高度为h的B树中,可以存储最多多少个关键字?用最小度数t函数表示。
18.1-5 如果红黑树中的每个黑结点吸收它的红子女,并把它们的子女并入自身,描述这个结果的数据结构。
黑结点至多有两个红子女。每个子女最多带来一个分支。
因此是一棵至多有3个关键字,4个子女的树。