B树和B+树
2020-09-08 本文已影响0人
宇宙之一粟
B树和B+树都是用于外查找的数据结构,都是平衡多路查找树。
两者的区别
-
在B+树中,具有n个关键字的结点含有n棵子树,即每个关键字对应一颗子树;而在B树中,具有n个关键字的结点含有(n+1)棵子树。
-
在B+树中,除根节点外,每个结点中的关键字个数n的取值范围是
[m/2]~m
,根节点n的取值范围是2~m
;而在B树中,除根节点外,其他所有非叶结点的关键字个数n的取值范围是[m/2]-1~m-1
,根节点n的取值范围是1~m-1
。 -
B+树中的所有叶结点包含了全部关键字,即其他非叶结点中的关键字包含在叶结点中;而在B树中,关键字是不重复的。
-
B+树中的所有非叶结点仅起到索引的作用,即结点中的每个索引项只含有对应子树的最大关键字和指向该子树的指针,不包含该关键字对应记录的存储地址;而在B树中,每个关键字对应一个记录的存储地址。
-
通常在B+树上有两个头指针,一个指向根节点,另一个指向关键字最小的叶结点,所有叶结点链接成一个不定长的线性链表,所以B+树可以进行随机查找和顺序查找;而B树只能进行随机查找。