对于红黑树(二叉树)来说 当数据较多的时候他只有 两个子节点 那么对应的深度会很大 ,,那么在进行查找时多次的访问会造成查找效率的下降,同时,在对二叉查找树进行插入时,可能会破坏二叉查找树的平衡。为了降低对于树的访问次数,实现树的平衡,我们需要新的数据结构来处理这样的问题。
首先来了解一下 2-3 查找树 (一种多叉树)、
2节点: 包含一个键(及其对应的值)和两条链,左连接指向2-3树中都小于该节点,右链接所指向的值都大于该节点。
3节点:包含两个键(及其对应的值)和三条链,左链接指向2-3树中的键都小于该节点,中链接指向的2-3树中的键都位于该节点的两个键之间,右连接指向的2-3树中的键都大于该节点。
b树: 每一个结点都是 key value(data) 的形式
b树分为几阶树 当他的阶数位M的时候 具有以下特点
每个结点最多含有M个链接
跟结点 含有两个子节点
每个结点最多含有 M个子节点
每个非根结点含有M-1个key 值
每个结点最少含有 ceil(m/2)-1 个键 ceil 是向上取整函数 m=5 ceil(m/2)=3
我们来构建一个 五阶b树(data省略不写,完整的是要写的)
插入25 按顺序进行插入 每个非跟结点 最少要含有2个key值 所以把中间的拿上来
最后插入完成是这种