树结构
动态查找树主要有:
- 二叉查找树(Binary Search Tree),
- 平衡二叉查找树(Balanced Binary Search Tree),
- 红黑树(Red-Black Tree ),
- B-tree/
- B+-tree/
- B*-tree (B~Tree)。
前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。而B系列树每个结点保存多个关键字
一棵m阶的B+树和m阶的B树的异同点在于:
1、B树中每个结点最多含有m个孩子(m>=2);除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)]个孩子(其中ceil(x)是一个取上限的函数);
B+树中每个结点最多含有m个孩子(m>=2);除根结点和叶子结点外,其它每个结点至少有[ceil(m *2/3)]个孩子(其中ceil(x)是一个取上限的函数);
2、B树所有的叶子结点和非叶子结点都包含了数据、B+树只有叶子结点包含数据
B+-tree与B*-tree 的关系
B*-tree是B+-tree的变体,在B+树的基础上(所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针),B树中非根和非叶子结点再增加指向兄弟的指针;B树定义了非叶子结点关键字个数至少为(2/3)M,即块的最低使用率为2/3(代替B+树的1/2)
网友评论