B-Tree以及创建过程演示

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,则再重复进行上述裂变操作直至插入结束为止。

数据结构动态演示网站,国外的大学开发的 链接:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

猜你喜欢

转载自blog.csdn.net/a1_HelloWord/article/details/104307914