【问题标题】:What is the difference btw "Order" and "Degree" in terms of Tree data structure就Tree数据结构而言,“Order”和“Degree”有什么区别
【发布时间】:2015-05-04 23:08:51
【问题描述】:

B-Tree Definition 他们在中使用“订单”一词:

According to Knuth's definition, a B-tree of order m is a tree which satisfies the following properties:

1. Every node has at most m children.
...

而“学位”在Tree terms 中定义为:

Degree – number of sub trees of a node.

那么,它们是一样的吗?我感觉不到任何区别。

【问题讨论】:

    标签: data-structures tree terminology


    【解决方案1】:

    Degree 表示 B 树中一个节点可以拥有的子节点数量的下限(根节点除外)。即尽可能少的孩子数。而Order 表示孩子数量的上限。 IE。可能的最大数量。

    关于顺序的 B 树属性

    NOTE:Wikipedia also states these

    关于度数的 B 树属性

    B Tree Properties with respect to Degree

    NOTE:These can also be found in the CLRS book

    【讨论】:

    【解决方案2】:

    B-tree 是一种特定类型的树,除其他外,每个节点具有最大数量的子节点。 B 树的 order 就是那个最大值。例如,二叉搜索树的阶数为 2。

    节点degree是它拥有的子节点的数量。所以B树的每个节点的度都大于等于0,小于等于B树的阶数。

    树没有“度”,只是它的节点有度。所以一棵树有一个最大度数和一个最小度数,指的是它的节点的最大和最小度数。

    类似问题here

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      B 树有两种流行的定义:

      • Knuth OrderOrder)被Knuth的定义使用
      • 算法简介 (CLRS)Cormen et al中的定义使用了CLRS DegreeDegree

      Knuth 阶CLRS 度 度量:min ,最小和最大子节点,(min, max),树中的每个内部节点都允许有。两个定义都同意 min 不能小于 max/2

      Knuth Order, k |  (min,max)  | CLRS Degree, t
      ---------------|-------------|---------------
           0         |      -      |        –
           1         |      –      |        –
           2         |      –      |        –
           3         |    (2,3)    |        –
           4         |    (2,4)    |      t = 2
           5         |    (3,5)    |        –
           6         |    (3,6)    |      t = 3
           7         |    (4,7)    |        –
           8         |    (4,8)    |      t = 4
           9         |    (5,9)    |        –
           10        |    (5,10)   |      t = 5
      

      主要相似点/不同点:

      • Knuth 阶 k 是计算 最大 子节点数的索引。 k 的 Knuth 阶意味着每个节点必须有一个 max = k 和一个 min = ceil(k/2)。例如,(3,6) 是 Knuth 6 阶的 B 树。
      • CLRS 度数 t 是计算 最小 孩子数的指标。 CLRS 度为 t 意味着每个节点必须有一个 min = t 和一个 max = 2t。例如,(3,6) 是 CLRS 度数为 3 的 B-tree
      • 在这两种定义中,min = ceil(max / 2) 和 max = 2 * min。
      • 在这两个定义中,键的数量等于子元素的数量减一。因此,Knuth 顺序和 CLRS 度数在技术上也在计算最小和最大 keys - 以及同时计算最小和最大 children

      • Knuth 的定义允许树 (min,max),其中 max an 是奇整数,但 CLRS 的定义忽略了它们。根据 CLRS 的定义,任何 (t, 2t-1) 形式的树都是无效的。例如,具有 (min,max) = (5,9) 的树在 Knuth 的定义中是有效的,但在 CLRS 的定义中是无效的。


      有趣的旁白:

      • 两个定义都包括2-3-4 trees,它们是具有 (min, max) = (2,4) 的树。它是一个 Knuth 阶 k = 4 的 B-tree,它是一个度数 t = 2 的 CLRS B-tree。这些树与 Red-Black Trees 密切相关。
      • 只有 Knuth 的定义包括 2-3 trees,其中 (min, max) = (2,3)。 2-3 树是 Knuth 阶 k = 3 的 Knuth B-tree。它不是有效的 CLRS B-tree。很遗憾 CLRS 没有包含这棵树,因为它们与 AA trees 密切相关。

      【讨论】:

        猜你喜欢
        • 2011-11-17
        • 2021-03-06
        • 1970-01-01
        • 1970-01-01
        • 2013-11-29
        • 2014-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多