B-Tree简述
一颗m阶B树(Balanced Tree Of Order m)是一颗平衡的m路搜索树
如图所示的是阶数为5的B数,一个节点可以存放4个关键字,一个结点至多有5个引用,0012,0030,0051.0075是根结点的4个关键字并且含有5个地址引用
B-Tree性质
- 叶节点具有相同的深度,叶结点的指针为空
- 结点中的数据从左到右递增
- 当B-Tree作为索引元素时,所有的索引元素不可以重复
B树的创建过程
首先定义一个5阶的B树(平衡5路查找树),现在我们要把4、9、32、12、24、30、51、29、69、31、90、70、75、79、、80、85、91、 这些数字构建出一个5阶树出来;
1.插入4.9.32.12
2.插入24
3.插入30
4.插入51
5.插入29
6.插入69,31
7.插入90
8.插入70,75,79
9.插入80,85,91
总结规律:当插入一个元素的时候,因为B-Tree也属于查找树的一种即左边元素大于右边元素,以5阶B-Tree为例,当元素≤4个的时候,按照从左到右依次按照大小进行排序,当插入的当前结点的元素大于B-Tree的阶数时,本例中,当元素=0时,创建新结点并将元素放入,插入元素结束;当元素<4且>0时,直接按照顺序插入元素即可,插入元素结束,当元素=4时,将插入的元素按照顺序放入结点中,然后从中选择一个数作为当前结点的父结点(选择结点的规则是 (n+1)/2 取整),本例为(5+1)/2=3即选取第三个元素,放入父结点中,若没有父结点则创建一个父结点,则插入结束;若父结点元素小于4,则直接按顺序插入元素即可,插入结束;与若父结点的元素=4,则再重复进行上述裂变操作直至插入结束为止。
数据结构动态演示网站:Data Structure Visualization