多路查找树,B树,B+树,B*树

本文介绍了多路查找树的概念,重点探讨了B树的优化结构,包括2-3树作为最简单的B树形式,以及B树、B+树和B*树的特性。B树降低了树的高度,减少了i/o操作,B+树在B树基础上增加了顺序访问指针,成为数据库索引的常用结构,而B*树通过增加指向兄弟节点的指针进一步优化了检索效率。
摘要由CSDN通过智能技术生成

多路查找树

二叉树的问题分析:

  1. 二叉树在构建时,需要进行多次i/o操作(海量数据存在数据库或文件中),节点很多的话,构建速度会有影响。
  2. 节点很多,会造成二叉树过高,降低操作速度

我们就可以引入多叉树,多叉树每个节点可以有更多的数据项和更多的子节点。

一个多叉树的例子
在这里插入图片描述
B树:

通过重新组织节点,降低树的高度,并且减少i/o读写次数来提升效率。

2-3树

2-3树是最简单的B树结构在这里插入图片描述

  1. 所有叶子节点在同一层(B树都满足这个条件)
  2. 有两个节点的节点叫做二节点,二节点要么没有子节点,要么有两个子节点
  3. 有三个节点的节点叫做三节点,三节点要么没有子节点,要么有三个子节点
  4. 2-3树是由二节点和三节点构成的树

插入规则:

所有叶子节点都在同一层,且符合B树结构。

除2-3树以外,还有234树等等

B树,B+树,B*树

B树的每个节点都存储数据,搜索可能在非叶子节点结束在这里插入图片描述
B+树只有叶子节点可以存储数据,它的叶子节点是一个链表,链表中的关键字是有序的;在B+树上增加了顺序访问指针,也就是每个叶子节点增加一个指向相邻叶子节点的指针,这样一棵树成了数据库系统实现索引的首选数据结构。

B+树改进了B树, 让内结点只作索引使用, 去掉了其中指向data record的指针, 使得每个结点中能够存放更多的key, 因此能有更大的出度. 这有什么用? 这样就意味着存放同样多的key, 树的层高能进一步被压缩, 使得检索的时间更短.在这里插入图片描述
B*树在B+树的非根和非叶子节点再增加指向兄弟的指针
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值