我和我的朋友一直在研究学校的一个问题。我们正在使用DFS遍历一个图,并计算每个给定组件中的节点数量。我们得到了截然不同的结果,并确定了差异所在。
当进入下一个递归时,我的朋友使用语法
componentSize += DFS_visit(nextNodeToVisit);
而我用
componentSize = 1 + DFS_visit(nextNodeToVisit);
我原以为这两个是一样的,那么有什么区别呢?在我们的案例中应该使用哪一个呢?
componentSize += DFS_visit(nextNodeToVisit);
是
componentSize = componentSize + DFS_visit(nextNodeToVisit);
与
比较componentSize = DFS_visit(nextNodeToVisit) + 1;
看到区别了吗?
一般来说,a <op>= b
的含义与a = a <op> b
大致相同,其中<op>
是一个算子。(LHS也有一个类型转换为a
的类型)
在我们的例子中应该使用哪一个?
不清楚哪个是正确的。我们需要看到数据结构和更多的算法。