B-树及其基本操作、B+树的基本概念

文章目录

  • 一、二叉排序树(BST)
  • 二、平衡二叉树(AVL)
  • 三、B树
    • 3.1、B树的基本概念
    • 3.2、B-树的基本概念
    • 3.3、B+树的基本概念
    • 3.4、B-树的查找
    • 3.5、B-树的插入和删除

一、二叉排序树(BST)

1、二叉排序树或者是空树,或者是满足如下性质的二叉树:
(1)若它的左子树不空,则左子树上所有关键字的值均小于根关键字的值;
(2)若它的右子树不空,则右子树上所有关键字的值均大于根关键字的值;
(3)左右子树又各是一棵二叉排序树
由二叉排序树的定义可以知道,如果输出二叉排序树的中序遍历序列,则这个序列是递增有序的。

二、平衡二叉树(AVL)

1、平衡二叉树又称AVL树,是一种特殊的二叉排序树。其左右子树都是平衡二叉树,且左右子树高度之差的绝对值不超过1。

2、对

三、B树

3.1、B树的基本概念

1、前言:
动态查找树主要包括:二叉查找树,平衡二叉树,红黑树,B树,B-树,查找的时间复杂度就为 O ( l o g 2 N ) O\left ( log_{2}N\right ) O(log2N),通过对数就可以发现降低树的深度就会提高查找效率。B树是为了存储设备或磁盘而设计的一种平衡查找树。

2、B即Balanced,平衡的意思。B树是一种树状数据结构,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。

3、一棵m阶的B树,特性如下:
(1)每个结点最多有m棵子树;
(2)除根节点外,其它每个分支节点至少有 [ m / 2 ] [m/2] [m/2]棵子树;
(3)根节点至少有两棵子树(除非B树只包含一个节点)
(4)所有叶节点在同一层上,且不包含任何信息;
(5)有 j j j个子树的非叶节点恰好有 j − 1 j-1 j1个关键码,关键码按递增次序排列。

3.2、B-树的基本概念

B-树就是B树。

3.3、B+树的基本概念

1、B+树是B-树的变体,也是一种多路搜索树。B+树把数据都存储在叶结点,而内部结点只存关键字和孩子指针,因此简化了内部结点的分支因子,B+树遍历也更高效,其中B+树只需所有叶子结点串成链表这样就可以从头到尾遍历,其中内部结点并不存储信息,而是存储叶子结点的最小值作为索引。

2、差别:
(1)在B+树中,具有n个关键字的结点含有n个分支;而在B-树中,具有n个关键字的结点含有n+1个分支
(2)非叶子结点的关键字都不会保存数据,只会用来索引,并且所有数据都会保存在叶子结点
(3)所有的叶子结点包含所有关键字信息以及指向关键字记录的指针,关键字自小到大顺序连接。
B-树及其基本操作、B+树的基本概念_第1张图片
3、为什么说B+树比B树更适合做操作系统的数据库索引和文件索引?
(1)B+树的磁盘读写的代价更低
B+树内部结点没有指向关键字具体信息的指针,这样内部节点相对B树更小
(2)B+树的查询更加的稳定
因为非终端结点并不是最终指向文件内容的节点,仅仅是作为叶子节点中关键字的索引。这样所有的关键字的查询都会走一条从根节点到叶子节点的路径。所有的关键字查询长度都是相同的,查询效率相当。

3.4、B-树的查找

3.5、B-树的插入和删除

参考链接1:https://blog.csdn.net/fhy569039351/article/details/82976842
参考链接2:https://www.cnblogs.com/guohai-stronger/p/9225057.html

你可能感兴趣的:(面试)