B树

B树

B树的应用

B树通常是为辅存设计的一种平衡搜索树


性质:

1.结点:

如果有n个关键字,

则在结点中是非递减存储,

有一个布尔变量标识结点是否是leaf叶子,

有n+1个孩子结点,且是按关键字分隔点指向的(n个关键字有n+1个分隔点)

2.高度:叶结点具有相同高度

3.关键字上界与下界

定义t>=2中2*t为B树的阶(出度最多为2*t),t为B树的?

除根结点,每个结点至少t-1关键字,t个孩子,根至少一个关键字(非空的情况下)

每个结点至多2*t-1个关键字,至多2*t个孩子,

当t=2时,B树即是2-3-4树


B树上的查找

B-TREE-SEARCH(x,k)
i=1
while i<=x.n &&k>x.key
	i++;
if(i<=x.n&&k==x.key)
	return (x,i);
else if x.leaf==TRUE
	return NULL;
else DISK-READ(x,ci)
	return B-TREE-SEARCH(x.ci,k)

B树的插入

需要引入操作:

分裂

插入总是向合适的叶结点中插入,一旦超过该结点能存储的最大个数,就开始按中间关键字分裂,同时将中间关键字提升到父节点,逐步上升到根结点,

如果根结点也需要分裂,此时B树的高度加1(B树高度增长发生在顶部,与二叉搜索树在底部不同)


B树的删除

删除某个关键字k// 较复杂 先放放 by zjerry 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值