B树是为了磁盘或其它存储设备而设计的一种多叉平衡查找树,与红黑树很相似。但是也存在一些不同。B树与红黑树最大的不同在于,B树的结点可以有多个子女,从几个到上千个。那为什么又说B树与红黑树很相似呢?因为与红黑树一样,一棵含n个结点的B树的高度也为O(lgn),但可能比一棵红黑树的高度小许多,应为它的分支因子比较大。所以,B树可以在O(logn)时间内,实现各种如插入(insert),删除(delete)等动态集合操作。
B+树是应文件系统所需而产生的一种B-tree的变形树。以及索引在数据库中的作用
多叉树的作用,降层高,让结点数量变少,查找结点的数量变少,磁盘寻址次数减少
多叉树与B树之间的关系:
1.多叉树没有约束平衡
2.没有约束每个节点字数的数量
2.数据是有规律的
B数与B+数的区别:
1.B+树所有的数据都存在叶子结点
2.B+数所有的叶子结点通过前后指针链起来
B树不是唯一的;
所有节点都是插入叶子节点,最底层;
B树插入过程:
1.找到对应的节点,并且未满
2.找到的节点已满,则会分裂新节点
B树的删除:(M表示每个节点最大key数量)
1.判断字数key数量M/2 - 1 ,相邻两颗子树都是M/2 - 1,合并
2.左边字数大于M/2 - 1,借节点
3.右边子树大于M/2 - 1,借节点
B树的线程安全:对子树加锁,包括当前层和以下的节点