【我是一棵树】B树、B+树

5 篇文章 0 订阅

多路查找树(B树)

其每个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。

2-3树

其中每个节点都具有两个孩子(我们称它为2节点)或者3个孩子(3节点)。

2-3-4树

就是2-3树点的扩展,包括了4个节点的使用

B树

是一种平衡的多路查找树,节点最大的孩子数目称为B树的阶。

属性

1、如果根节点不是叶节点,则起至少有两棵子树。

2、每一个非根的分支节点都有k-1个元素和k个孩子,其中【m/2】<=k<=m(【x】为向下取整),每一个叶子节点n都有k-1个元素

3、所有叶子节点都位于统一层次。

4、所有分支节点包含下列信息数据,(A0K1,A1K2,...KmAn),其中Ki为关键字,且Ki<K(i+1);Ai为指向子树根节点的指针,且指针A(i-1)所指子树中所有节点的关键字均小于Ki,An所指子树中所有节点的关键字均大于Kn。

 B+树定义

B+树已经不是严格意义上的树了,在B树中每个元素只能出现一次,B+树中出现在分支节点的元素会被当做他们在该分支节点位置的中序后继者(叶子节点)中再次列出。另外,每个叶子节点都会保存一个指向后一叶子节点的指针。

B树和B+树的差异

1、有n棵子树的节点中包含有n个关键字

2、所有叶子节点包含全部关键字信息及向含这些关键字记录的指针,叶子节点本身依关键字点的大小字小而大顺序链接。

所有分支接二店可以看成是索引,节点中仅含其子树中最大(或最小)的关键字。

B+树的好处

如果是要随机查找,我们就从根节点出发,与B树查找方式相同,不过即使在分支节点找到了待查找的关键字,它也知识用来索引的,不能提供实际记录的访问,还是需要到达包含次关键字的中断节点。

如果我们是需要以最小关键字进行从小到达的顺序查找,我们就可以从最左侧的叶子节点出发,不经过分支节点,而是沿着指向下一叶子的指针就可以遍历所有关键字

B+树的结构特别适合带有范围的查找。

B树B+树都是用于数据库和文件系统中的自平衡树数据结构,它们能够保持数据有序,允许搜索、顺序访问、插入和删除在对数时间内进行。这两种树都广泛用于磁盘存储系统。 B树(B-Tree): B树的每个节点通常包含键和对应的数据指针,它允许节点存储多个键。每个节点的键数量介于最小度数(t)和2t之间,最小度数是树结构的固定参数。B树的特性包括: 1. 所有叶子节点都位于同一层。 2. 节点内的键是有序排列的。 3. 在非节点,如果父节点有n个子节点,则该父节点包含n-1个键。 4. 所有叶子节点不包含实际的数据指针,只包含键和指向记录的指针。 一个简单的B树示例(最小度数为2): ``` (10, 30, 50) / \ (10) (30) (50) / \ / \ / \ (5) (15) (25) (35) (45) (55) (65) ``` B+树(B+-Tree): B+树B树的一个变种,它与B树的不同在于: 1. 所有数据项都存在于叶子节点。 2. 非叶子节点只包含键,这些键同时也是叶子节点中的项。 3. 叶子节点之间通过指针相连,可以顺序高效地访问所有的数据项。 B+树的这些特性使得它在范围查询上比B树更高效。一个简单的B+树示例(最小度数为2): ``` (10, 30, 50) / \ (10) (30) (50) / \ / \ / \ (5) (15) (25) (35) (45) (55) (65) ``` 在B+树中,所有的数据项都在叶子节点,即(5), (15), (25), (35), (45), (55), (65),非叶子节点只包含键和子节点指针。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值