【发布时间】:2020-07-22 19:13:22
【问题描述】:
考虑一下这个控制流图。我们需要找到完全独立的人 班轮路径。当我们使用 "V(g) = e-n+2 = 7-6+2 = 3"
但如果我手动计数,我会得到 4 条独立的班轮路径。路径是:
"0=>1=>3=>5", "0 => 1 => 3 => 4 => 5", "0 => 2 =>3=> 5", "0=> 2 => 3 => 4 => 5"
为什么这两个值不同?
[此处为控制流程图][1]
【问题讨论】:
考虑一下这个控制流图。我们需要找到完全独立的人 班轮路径。当我们使用 "V(g) = e-n+2 = 7-6+2 = 3"
但如果我手动计数,我会得到 4 条独立的班轮路径。路径是:
"0=>1=>3=>5", "0 => 1 => 3 => 4 => 5", "0 => 2 =>3=> 5", "0=> 2 => 3 => 4 => 5"
为什么这两个值不同?
[此处为控制流程图][1]
【问题讨论】:
为了计算 McCabe 复杂度,您需要找到边和节点。第一个公式是:
v(F) = edge - node + 2
第二个公式是:
v(F) = # of decision nodes + 2
请注意,决策节点的数量也称为谓词节点。
现在您的图中有 6 个节点(圆圈)和 7 个边(箭头)。
因此,McCabe 复杂度将为 = v(F) = 7 - 6 + 2 = 3。
第二种解决方法是:
有两个谓词节点(决策节点)0 和3 所以v(F) = 2 + 1 = 3。
【讨论】: