目录
多路搜索树
首先,介绍一下2-3树,指的是其中每一个节点2结点--有两个孩子或者3结点--三个孩子或者没有孩子,2节点指的是该节点有一个元素和两个孩子OR没有孩子,3节点指的是该节点有两个元素(一大一小)和三个孩子OR没有孩子。
特点是所有叶子节点都在同一层,插入和删除节点都必须保证顺序和性质不变。左子树小于根节点元素小于中子树小于右根节点元素小于左子树。
2-3-4树和2-3树差不多。
B树
B树的结构是一种平衡的多路查找树:节点数最大的孩子数目称为B树的阶(order);
B树的属性:
- 如果根节点不是叶子节点,则至少有两棵字数;
- 每一个非根的分支节点都有k-1个元素和k个孩子,其中 ,每一个叶子结点都有k个元素,其中
- 所有的叶子节点都位于同一层次
- 分支节点信息包括(),其中有顺序。
B树的结构就是为内外存的数据交换准备的。
B树最坏的搜索情况:第一层有一个节点,第二层有两个,除去根节点,其余层每个节点至少有棵子树,则第三层有2*,若m阶有n+1个关键字,即,即。
B+树:
B+树结构适合带有范围的查找。
B+树是应文件系统所需而出的一种B树的变形树,在B+ 树中,出现在分支结点中的元素,会被当作他们在该分支结点位置的中序后继者(叶子结点)中再次出现。另外,每一个叶子节点都会保存一个指向后一叶子结点的指针。
B+树和B树之间的差异在于:
- 有n棵子树的结点中包含有n个关键字
- 所有的叶子结点包含全部关键字信息,及指向含这些关键字记录的指针,叶子节点本身依关键字的大小自小而大顺序连接
- 所有分支结点可以看成索引,结点中仅含有其子树中的最大(最小)关键字。