B树与B+树

一、内存与磁盘

  1. 区别
    内存:速度快,断电以后数据消失
    磁盘:速度慢,数据持久存储
  2. 大小
    CPU < 内存 < 磁盘
    CPU可以通过CPU指令访问内存,但不可以访问磁盘

二、B树
特征:多叉树,叉的个数不限,是平衡的

性质:
一棵M阶B树,满足以下条件
B树是一棵多路平衡的查找树,每个结点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中所有关键字都小于它,右子树中的所有关键字都大于它。
1)每个结点至多拥有M棵子树 (结点有5个元素/关键字,最多拥有6棵子树)
2)根结点至少拥有两棵子树
3)除了根节点以外,其余每个分支结点至少拥有M/2棵子树
4)所有的叶结点都在同一层上
5)有k棵子树的分支结点存在k-1个关键字,关键字按照递增顺序进行排序
6)关键字数量满足ceil(M/2)-1<=M-1
ceil 是向上取整,最后结果比原数据大(eg,ceil(1.2)=2; ceil(-1.3)=-1)
26个字母组成的B树
用代码表示B树的一个结点

typedef int KEY_VALUE;
struct btree_node {
	KEY_VALUE* keys; // 通过malloc来创建结点
	struct btree_node** childrens; // 多个子结点
	
	int num; // 每个结点中元素个数
	int leaf; // 是否是叶子结点 bool
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值