一、二叉树与B树
二叉树操作数据效率比较高,但是存在一定的问题:二叉树需要加载到内存如果节点少不影响,但是如果二叉树结点很多就存在问题。构建二叉树时,需要多次进行I/O操作,节点海量,构建二叉树时,速度有影响。结点海量,会造成二叉树的高速很大,降低操作速率。
多叉树二叉树中每个节点有一个数据项,最多有两个自己诶单,如果语序树的每个节点可以有两个以上的子结点,那么这个树称为n阶多叉树,或者称为n叉树。
二、树
1、2-3树
2-3树是最简单的B树结构,特点:
①2-3树所有叶子节点都在同一层。
②有两个子结点的结点叫二节点,二节点要么没有子结点,要么有两个节点。
③有三个子结点的结点叫三节点,三节点有么没有子结点,要么有三个子结点。
④2-3树是由二节点和三节点构成的树。
左边最小小于父结点,右边大于父结点,中间处于父结点的中间值。
2、B-树、B+树、B*树
B-树
B-树的阶:节点最多子结点个数,比如2-3树的阶是3,2-3-4树的阶是4
是一种多路搜索树(并不是二叉的)
定义任意非叶子结点最多只有M个儿子;且M>2;
根结点的儿子数为[2, M];
除根结点以外的非叶子结点的儿子数为[M/2, M];
每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)
非叶子结点的关键字个数=指向儿子的指针个数-1;
非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1];
非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;
所有叶子结点位于同一层;