【数据结构】B树的创建

B树是一种平衡多叉搜索树,用于优化大数据量时的查找效率。文章介绍了B树的定义、性质,并通过示例展示了3阶B树的插入过程。接着详细解释了B树插入操作的代码实现,包括节点的分裂和父节点更新。
摘要由CSDN通过智能技术生成

B树也是一种搜索树,二叉搜索树、红黑树、都是动态查找树,典型的二叉搜索结构,查找的时间复杂度和树的高度相关O(log2N)。

这些二叉搜索结构有一个共同的缺陷:数据量大,树的高度太高,增大访问磁盘的次数,从而效率低下。

想要加速对数据的访问速度:
1.提高I/O的时间
2.降低树的高度——平衡多叉树

B树的定义
一棵M阶(M>2)的B树,是一棵平衡的M路平衡搜索树,可以是空树或者满足以下性质:
1.根节点至少有两个孩子。
2.每个非根节点至少有M/2(上取整)个孩子,至多有M个孩子。
3.每个非根节点至少有M/2-1(上取整)个关键字,至多有M-1个关键字,并且以升序排列
4.key[i]和key[i+1]之间的孩子节点的值介于key[i]、key[i+1]之间。
5.所有的叶子节点都在同一层。

例:
插入{53,75,139,49,145,36,101};

M阶B树——M=3
3阶B树的插入过程:
这里写图片描述
这里写图片描述这里写图片描述这里写图片描述
代码实现过程:
1.首先设定结构体,实际只用到两个关键码,但是为了交换简单,我们设置三个关键码,孩子指针域始终比关键码多一个。
这里写图片描述
2.创建一个类将B树的函数操作封装起来。
3.B树的插入:
(1)根节点为空,开辟一个新节点newNode,将key的值赋给newNode,对size+1,最后使根指向newNode。
(2)根不为空,通过Find函数找到插入位置cur,通过_InsertKey()函数将key的值赋给cur,(cur->size)+1,判断cur->size与M的大小,如果cur->size < M则return true;
(3)如果cur->size=M,要将节点进行分裂,将中间的关键码向上提,ne

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值