这是2-3树的确切定义

时间:2016-02-21 03:24:32

标签: data-structures tree b-tree

抱歉,我无法发布图片,所以我用键盘打印它们。

                             [6:-]

               [2:4]                        [8:-]      

     [0:1]     [2:3]    [4:5]         [6:7]       [8:9]

这一个来自“数据结构和算法”,它是2-3树的图片,你可以看到父节点上的每个数据必须在他们的子节点上。

                             [50:90]

      [20:-]                 [70:-]                  [120:150]

[10:-]    [30:40]       [60:-]    [80:-]    [100:110]   [130:140]   [160:-]  

这篇文章来自另一本名为“数据抽象和用c ++解决问题”的书,父节点上的数据不在他们的子节点上。

哪一个是对的?

1 个答案:

答案 0 :(得分:0)

这些都是2-3棵树,因为" 2-3"只是指每个节点拥有的子节点数。但是这些树有不同的更具体的名称。

第一个,父母从孩子那里复制钥匙,被称为" B +树":https://en.wikipedia.org/wiki/B%2B_tree

第二个,其中父键不是副本,称为" B树":https://en.wikipedia.org/wiki/B-tree

请注意,通常存在与键相关联的值,而在B +树中,内部节点不包含值。

B +树对于由文件系统支持的数据库索引很受欢迎。由于内部节点不包含值,因此它们可以具有更高的扇出效果,从而降低树的高度并使访问速度更快。

叶子节点通常不会实际存储值 - 它们存储指向存储值的位置的指针,这样可以方便地为B +树的叶节点提供与内部节点完全相同的结构。