【问题标题】: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
【解决方案2】:
B-tree 是一种特定类型的树,除其他外,每个节点具有最大数量的子节点。 B 树的 order 就是那个最大值。例如,二叉搜索树的阶数为 2。
节点的degree是它拥有的子节点的数量。所以B树的每个节点的度都大于等于0,小于等于B树的阶数。
树没有“度”,只是它的节点有度。所以一棵树有一个最大度数和一个最小度数,指的是它的节点的最大和最小度数。
类似问题here。
希望对你有帮助!
【解决方案3】:
B 树有两种流行的定义:
-
Knuth Order(Order)被Knuth的定义使用
-
算法简介 (CLRS)Cormen et al中的定义使用了CLRS Degree(Degree)
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 密切相关。