徒手撸个btree,Go数据结构与算法-BTree

本文将介绍btree的原理与golang的实现。

什么是Btree

B树是一种平衡的多路查找树。树,可广泛用于磁盘访问。 M阶树顺序的B树最多可以有m-1个键和M个子树。 使用B树的主要原因之一是它能够在单个节点中存储大量键,并且通过保持树的高度相对较小来存储大键值。

概念

  1. 根节点:最顶层节点
  2. 叶子节点:没有子树的节点就是叶子节点
  3. 度数:在树中,每个节点的子节点(子树)的个数就称为该节点的度(degree)。

特点

1.每个叶结点具有相同的深度,也就是树的高度。
2.节点的元素以非降序排序,即x.k <= x.k1 <= … <= x.kn。且 t-1 <=n <= 2t-1

使用场景

Btree主要用于提高访问数据的效率,比如数据库的索引文件。

实现

1、定义一个btree,包含树的度,以及根节点,注意根节点是引用类型,说明只有一个根

type btree struct {
	degree uint  // 树的度
	root   *node // 根节点
}

2、定义树的节点,btree的节点信息,存储的是一个数组和子节点

// node 定义树的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值