B树的简介以及定义

在了解B树之前,我们先了解内存和磁盘的区别 cpu可以通过汇编代码访问内存的任意位置,访问速度较快 ,而磁盘需要磁头顶住磁盘找到磁道 ,寻址的过程很慢,如果有4GB的磁盘,访问的小单位为4k,用普通的二叉树结点代表磁道,那么我们最晚找到我们我要的位置需要寻址20次。访问速度较慢,试想,如果存在一种具有某种性质的多叉树树具有的多个叶子节点可以减少磁盘的寻址次数。经过前人的总结出现了如下性质的多叉树

 附上多叉树的定义

#define M 6
#define DEGREE (M / 2)

typedef int KEY_VALUE;
//定义叶子节点  该节点可以代表磁盘里面的扇区
struct btree_node
{
	KEY_VALUE* keys; // malloc 这样定义减少结构体所占用的内存
	//KEY_VALUE keys[M-1]; M-1 节点最多关键字的数量
	struct  btree_node** childrens;//定义子叶子节点的指针

	int num;//叶子节点关键字的数量
	int leaf;//判断该节点是都是叶子节点
};

struct btree {
	struct  btree_node* root;
};

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值