数据结构基础

1 树

1.1 二叉树

  • n个有限元素的集合,该集为空合或者由一个称为根root的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树

  • AVL:平衡二叉树,通过旋转来保持平衡;旋转是对整棵树的操作

1.2 B树

  • Balence Tree;多路平衡查找树,即子节点可以>=2的平衡树:

  • 特点:
    • 每个节点包含了索引值和具体data;任何一个关键字只会出现在一个结点中
    • 搜索有可能在非叶子结点结束,最好情况O(1);在关键字全集内做一次查找的性能逼近二分查找
  • 传统用来搜索的平衡二叉树如AVL树,红黑树等,在一般情况下查询性能非常好,但当数据量非常大时,内存不够用,大部分数据只能存放在磁盘上,只有需要的数据才加载到内存中;由于空间局部性原理:如果一个存储器的某个位置被访问,那么将它附近的位置也会被访问。平衡二叉树从设计上无法“迎合”磁盘;于是引入B树

1.3 B+树

  • B树的变种;所有关键字存储在叶子节点,内部节点即非叶子节点并不存储真正的data;为所有叶子结点增加了一个链指针

  • B+树内节点不存储数据,所有data存储在叶节点导致查询时间复杂度固定为log n;而B树查询时间复杂度不固定,与key在树中的位置有关,最好为O(1);B+树叶节点两两相连可大大增加区间访问性,可使用在范围查询等,而B树每个节点key和data在一起,则无法区间查找;B+树更适合外部存储;由于内节点无data域,每个节点能索引的范围更大更精确

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值