(1)高度为5的3阶B-树至少有( )个结点,至多有( )个结点。
解: h=5,m=3,根据B-树的性质,除根之外的所有非终端结点至少有⌈m/2⌉=2棵子树(分支),一个分支发射出一个结点,至多有m=3棵子树,结点数只要求出每一层的子树(分支)数即可。
至少:
第1层: 1个结点
第2层 :2个结点,B-树定义中,若根结点不是叶结点,至少有2棵子树
第3层 : 2*2=4个 由第2层的2个结点,每个结点至少发出⌈m/2⌉=2个分支得到
第4层: 4*2==8 由第3层的4个结点,每个结点至少发出⌈m/2⌉=2个分支得到
......以此类推
第h层:为2的h-1次方,当h=5,也就是第5层有个结点
B树上的结点个数就是将各层的结点数量相加,因此高度为5的B树至少有1+2+4+8+16=31个
至多:
第1层: 1个结点
第2层 :m=3个结点,B-树定义中,树中每个结点至多有m棵子树
第3层 : =9个 由第2层的m个结点,每个结点至多发出m个分支得到
第4层: =27 个 由第3层的m个结点,每个结点至多发出m个分支得到
......以此类推
第h层:为m的h-1次方,当h=5,也就是第5层有=81个结点
高度为5的B树至少有1+3+9+27+81=121个
(2)[2013统考真题]在一棵高度为2的5阶B树中,所含关键字的个数至少是( )
解:h=2,m=5
思路1:
第1层:1个结点,至少含1个关键字,因为根结点至少有2棵子树,1个关键字
第2层:2个结点,每个结点中至少含⌈m/2⌉-1=2个关键字,共2*2=4个关键字
B树至少含1+4=5个关键字
思路2:对于5阶B树,每个结点至多包含5-1=4个关键字,当关键字达到5时会产生结点分裂,成为高度为2的B树,因此,高度为2的5阶B树中,所含关键字的个数至少是5
(3)[2014统考真题]在一棵具有15个关键字的4阶B树中,含关键字的结点个数最多是( )
解:题目要求含关键字的结点个数最多是多少?注意是“最多”
在关键字数量一定的情况下,如果要使结点个数达到最多,则每个结点中包含的关键字数目应该最少。
对于一棵4阶B树而言,每个结点中至少含有⌈m/2⌉-1=1个关键字
15个关键字,每个结点中含1个关键字,则需要15个结点。
15个结点正好构造一个4层的B树。
(4)已知一棵5阶B树中共有53个关键字,则树的最大高度为( ),最小高度为( )
解:m=5,n=53
代入解得:h>=3,h<=4,最大高度为4,最小最高为3
(5)高度为5的3阶B树含有的关键字个数至少是( )
解:m=3,h=5,除根结点外,每个非终端结点至少含有⌈m/2⌉-1=1个关键字,根据第(1)题的推导,高度为5的3阶B树至少含有31个结点,每个结点中至少含有1个关键字。因此,高度为5的3阶B树含有的关键字个数至少是31
(6)含有n个非叶结点的m阶B树中至少包含( )关键字
解:根据B树的定义,除根结点外,每个非终端结点到少含有⌈m/2⌉-1=1个关键字
而根结点若不是叶结点至少有两棵子树,也就意味着根结点中至少有1个关键字。
除根结点外,还有n-1个非终端结点,这n-1个非终端结点含有的关键字个数为:(n-1)(⌈m/2⌉-1)
再加上根结点含有的1个关键字,则含有n个非叶结点的m阶B树中至少包含(n-1)(⌈m/2⌉-1)+1关键字