`

B tree

 
阅读更多

B-

       是一种多路搜索树(并不是二叉的):

       1.定义任意非叶子结点最多只有M个儿子;且M>2

       2.根结点的儿子数为[2, M]

       3.除根结点以外的非叶子结点的儿子数为[M/2, M]

       4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)

       5.非叶子结点的关键字个数=指向儿子的指针个数-1

       6.非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1]

       7.非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]

子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;

       8.所有叶子结点位于同一层;

       如:(M=3

       B-树的搜索,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果

命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为

空,或已经是叶子结点;

B-树的特性:

       1.关键字集合分布在整颗树中;

       2.任何一个关键字出现且只出现在一个结点中;

       3.搜索有可能在非叶子结点结束;

       4.其搜索性能等价于在关键字全集内做一次二分查找;

       5.自动层次控制;

       由于限制了除根结点以外的非叶子结点,至少含有M/2个儿子,确保了结点的至少

利用率,其最底搜索性能为:

    

       其中,M为设定的非叶子结点最多子树个数,N为关键字总数;

       所以B-树的性能总是等价于二分查找(与M值无关),也就没有B树平衡的问题;

       由于M/2的限制,在插入结点时,如果结点已满,需要将结点分裂为两个各占

M/2的结点;删除结点时,需将两个不足M/2的兄弟结点合并;

 

 

B+

       B+树是B-树的变体,也是一种多路搜索树:

       1.其定义基本与B-树同,除了:

       2.非叶子结点的子树指针与关键字个数相同;

       3.非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树

B-树是开区间);

       5.为所有叶子结点增加一个链指针;

       6.所有关键字都在叶子结点出现;

       如:(M=3

   B+的搜索与B-树也基本相同,区别是B+树只有达到叶子结点才命中(B-树可以在

非叶子结点命中),其性能也等价于在关键字全集做一次二分查找;

       B+的特性:

       1.所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好

是有序的;

       2.不可能在非叶子结点命中;

       3.非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储

(关键字)数据的数据层;

       4.更适合文件索引系统;

分享到:
评论

相关推荐

    B.rar_B-树索引_B树_b tree_b tree java_java B-Tree

    标题中的"B.rar_B-树索引_B树_b tree_b tree java_java B-Tree"表明这是一个关于B-树实现的压缩文件,其中包含了用Java语言编写的B-树索引代码,并且含有详细的注释。这为学习和理解B-树提供了实践示例。 首先,...

    B_Tree1.rar_MáS_b tree java_tttee1.com

    B树(B-tree)是一种自平衡的查找树,能够保持数据排序,允许对数据进行快速查找、插入和删除操作。在Java或C#编程中,实现B树可以帮助优化磁盘I/O操作,因为B树的设计可以减少数据读取的次数。 描述中的"also v&#...

    btree_vb.zip_b tree_btree_tree_visual basic

    **B树(B-Tree)**是一种自平衡的树数据结构,主要应用于数据库和文件系统中,用于存储大量数据并支持快速的查找、插入和删除操作。B树的设计旨在减少磁盘I/O操作,因为磁盘读写比内存操作慢得多。在B树中,每个节点...

    B树 C++ template实现,B tree

    实现了B tree的添加删除,查找。key value 用C++模板方式。希望对学习数据结构的有帮助。作者曾成功用在大型文件的查找中 建立Map映射。

    B+ tree的java实现

    在IT领域,B+树(B Plus Tree)是一种常见的数据结构,广泛应用于数据库索引、文件系统以及其他需要高效检索的数据存储系统中。B+树的特点是平衡性、分层结构和所有叶子节点在同一层,这使得它在处理大量数据时具有...

    BT.rar_b tree in java_b tree java_b-tree_tree

    在IT领域,数据结构是构建高效算法的基础,而B树(B-Tree)作为一种自平衡的树型数据结构,尤其适用于大量数据的存储系统,如数据库和文件系统。本资源包"BT.rar"包含了Java语言实现B树的相关代码,帮助我们理解和...

    b_plus_tree.zip_B plus tree_b tree plus_b+tree_b-tree_plus

    B+树,全称为B-Tree Plus,是一种自平衡的索引数据结构,常用于数据库和文件系统中,以高效地存储和检索大量数据。在Windows环境下,使用C++实现B+树是一种常见的编程任务,因为C++的性能强大且灵活,能够很好地处理...

    c 语言开发b-tree数据文件索引.zip_b tree_b+ tree_b-tree_c语言 文件_索引

    在IT领域,数据库索引是提高数据检索效率的关键技术之一,而B树(B-tree)是一种广泛用于数据库和文件系统中的自平衡查找树结构。本文将深入探讨如何使用C语言来开发B树数据文件索引。 B树,全称为平衡多路搜索树,...

    B-.rar_B tree insert delete_B树_b-tree

    **B树(B-tree)**是一种自平衡的树数据结构,广泛用于数据库和文件系统中,以支持高效的数据检索。它的设计目标是减少磁盘或其他慢速存储设备的访问次数,因为这些设备对于随机访问的性能较差,而对顺序访问的性能...

    B-tree--BP-tree--B--tree--R-tree.rar_B+_R-Tree_b+tree_btree转换为rt

    在数据库和文件系统中,数据存储和检索的高效性至关重要,这就引出了我们今天要讨论的主题:B树、B+...通过阅读《B-tree》、《B+ tree》、《B tree》和《R tree》这四个文档,你将能深入掌握它们的工作方式和适用场景。

    B_Tree的C语言实现与分析

    **B-树(B Tree)**是一种自平衡的树数据结构,它能够保持数据排序,适合作为数据库和文件系统的索引结构。B-树的主要特点是每个节点可以有多个子节点,这使得它能高效地处理大数据量的存储。在C语言中实现B-树,...

    B+Tree Database

    B+ tree implementation

    B tree 插入算法(2 加入了 栈和队列操作代码)

    B树(B-tree)是一种自平衡的树数据结构,广泛应用于数据库和文件系统中,用于高效地存储和检索大量数据。它的主要特点包括多分支、保持数据平衡以及支持顺序访问。在这个主题中,我们将深入理解B树的插入算法,并...

    B tree 插入算法

    **B树(B-tree)是一种自平衡的查找树数据结构,广泛应用于数据库和文件系统中。它的设计目标是减少数据存储和检索时的磁盘I/O操作。B树的主要特点包括分层节点、多关键字以及平衡特性。** **在B树中,每个节点可以...

    BTREE 树形文件处理系统.zip_R tree_b tree_btree

    BTREE树形文件处理系统是一种基于B树(B-Tree)数据结构的高效存储和检索系统,常用于数据库和文件系统中。B树是多路平衡查找树,它能够保持数据有序,允许快速访问和更新大量数据。R树和B树是两种不同的空间索引...

    B-tree与B+tree简介

    B-tree与B+tree简介 B-tree和B+tree是两种常用的索引结构,广泛应用于数据库系统和文件系统中。它们的出现是为了解决大规模数据存储中索引查询效率低下的问题。 一、前言 动态查找树主要有三种类型:二叉查找树...

    b_tree16.rar_2-4 tree_b tree_float

    综合2叉树及B+树优点的能根据增删改而分裂或合并的完整程序(现在以8bit(BYTE key)为关键字,可扩充到64bit的double为key,用户数据包现在以float ton表示,可扩充到任意结构struct)

    B-Tree B-Tree

    **B-Tree详解** B-Tree(B树),是一种自平衡的树数据结构,它能够保持数据排序,常用于数据库和文件系统中。B-Tree的主要特性是节点可以拥有多个子节点,通常远多于二叉树。这种数据结构允许高效地在大型数据集上...

    基于LSM Tree的分布式索引实现.pdf

    LSM Tree与传统的B Tree有着本质区别。B Tree以其平衡的多路搜索树特性,保证了数据查找的高效性,但在高并发写入场景下,频繁的插入操作可能导致树结构频繁调整,磁盘I/O开销增大。而LSM Tree通过将数据先写入内存...

    PB Tree icon显示

    PB Tree(P-B Tree)是一种数据结构,全称为Probabilistic-B Tree,它在数据库、文件系统和其他存储系统中有着广泛的应用。PB Tree是B树(B-Tree)的一个变体,主要设计用来处理大量的数据,并能高效地支持随机访问...

Global site tag (gtag.js) - Google Analytics