通过所有outoging路径找到可从另一个节点到达的最近节点的算法

时间:2010-04-02 09:09:15

标签: algorithm graph graph-theory

您建议使用哪种算法找出最近的节点,该节点可以通过节点出来的所有路径从特定节点到达。该图表是非重量的。

我正在尝试分析控制流程图,当有“IF”块时,我想找到“关闭”“IF”的块。

1 个答案:

答案 0 :(得分:1)

并行运行一组广度优先搜索,一个来自起始节点的每个外部路径,每次检查一个节点将其计数增加一。 (注意:这里的“并行”意味着你应首先对所有搜索进行所有“距离= 1”评估,然后对所有“距离= 2”等进行评估 - 这样可以确保找到的结果是最接近的任何路径)。确保不在图表中循环循环(如果存在)。

在第一个节点上停止增加到与原始节点的出路径数相同的计数。

运行时间为O(N + E),其中N是节点数,E是当前节点下游的边数。由于提前终止,大多数搜索都会花费更少的时间。