目录
首先:在讲B树之前先要明确一个信息,B-树叫B树,不是叫B减树,没有B减树这种数据结构。只有B+树(B加树)这种数据结构。
一.二叉树
二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。
图展示了一棵普通二叉树:
二.二叉排序树
二叉排序树(Binary Sort Tree)又称二叉查找树、二叉搜索树,相比二叉树它结点带有值。 它或者是一棵空树;或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
图展示了一棵二叉排序树:
三.多叉树
多叉树与二叉树相比,多叉树的每个结点可以具有多个子结点以及每个结点可以有更多的数据项,结点的数据项又叫做结点的关键字。
图展示了一棵多叉树:
四.B树
B树:其实是一种多叉树,但是比多叉树多了一些特征。
根结点最少有一个关键字。
每个结点最多有m-1个关键字。
非根结点最少有m/2个关键字(取整)。 /** m是树的深度 **/
每个结点的关键字都按照从小到大的顺序排列,每个关键字的左子树中所有的关键字都小于该关键字,每个关键字的右子树中所有关键字都大于该关键字。
所有的叶子结点都位于同一层,或者说根节点到每个叶子结点的长度都相同。
每个结点都存有索引和数据,也就是对应的key和value。
图展示了一棵B树:
B-树的卫星数据:
B-树中的卫星数据(Satellite Information):