本文将主要讲述另一种树形结构,B树;B 树是一种多路平衡查找树,但是可以将其理解为是由二叉查找树合并而来;它主要用于在不同存储介质之间查找数据的时候,减少 I/O 次数(因为一次读一个节点,可以读取多个数据); 一、结构概述 B树,多路平衡查找树,即有多个分支的查找树;如图所示: B 树主要应用于多级存储介质之间的查找,图中的蓝色节点为外部节点,代表下一级存储
B树相对于平衡二叉树的不同是,每个节点包含的关键字增多了,特别是在B树应用到数据库中的时候,数据库充分利用了磁盘块的原理(磁盘数据存储是采用块的形式存储的,每个块的大小为4K,每次IO进行数据读取时,同一个磁盘块的数据可以一次性读取出来)把节点大小限制和充分使用在磁盘快大小范围;把树的节点关键字增多后树的...
如果遇到这种情况,首先,还是将先将父节点的元素移到该节点,然后,将当前节点及它的兄弟节点中的key合并,形成一个新的节点。 image 移动之后,跟兄弟节点合并。 image 删除就只有上面的几种情况,根据不同的情况进行删除即可。 上面的这些介绍,相信对于B树已经有一定的了解了,接下来的一部分,我们接着讲解B+树,我相信...
让树的节点高度差不会太大,这个时候就衍生了一些平衡算法,最终我们的二叉树就有像AVL树和红黑树这些新产品,我们也称这些新产品为平衡二叉树,,平衡二叉树通常会保证树的左右两边的节点层级相差不会大于2。
3. B*树的优化和应用 3.1 B*树的定义 B*树是在B+树的基础上进行了一些优化的数据结构。其目标是减少B+树节点的分裂和合并操作,以提高性能和降低维护成本。 3.2 B*树的特性 3.2.1 非叶子节点的关键字个数更多 相对于B+树,B*树的非叶子节点可以包含更多的关键字。这一特性减少了树的高度,提高了查找效率...
1、概念B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用B树和B+树的数据结构。 2、规则 排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则。 子节点数:非叶子节点的子节点数>1,且<=M ,且M>=2,空树除外(注:M阶代表一个树节点最...
b+树的中间结点不保存数据,所以磁盘页能容纳更多结点元素,更“矮胖” B树插入的两种分裂 b树在插入的过程中,都会自上而下的检查当前节点是否可以分裂,如果关键字满了(k=M-1)则先分裂,再插入。并且插入都会插入到叶子结点中。b树插入会有两种分裂,一种是根结点分裂,一种是非根结点分裂。
和根节点的第一个元素进行比较; 如果匹配上,返回元素找到并且终止函数; 如果未匹配上,检查元数据与key值的大小; 如果小于待查元素,继续检索B树的左子树; 如果大于的话,比较相同节点中下一个key值并且重复3、4、5、6步,直到找到指定元素或者在树的叶子节点的最后一个结束; ...
B树 vs 二叉搜索树 B树和 二叉搜索树,在逻辑上是等价的 多代节点合并,可以获得一个超级节点 2 代合并的超级节点,最多拥有 4 个子节点(至少是 4 阶B树) 3 代合并的超级节点,最多拥有 8 个子节点(至少是 8 阶B树) n 代合并的超级节点,最多拥有 2^n 个子节点( 至少是 2^n 阶B树) ...