在项目中查找循环依赖的算法是什么?

时间:2015-04-18 11:14:29

标签: c# algorithm

我需要找到类之间的循环依赖关系,我会立即记住"算法和数据结构"当然:

1)在单链表中查找循环(​​Floyd的循环查找算法)

2)深度优先搜索

所以,我有一个检查循环依赖的方法

 private void FindDependency(IDictionary<string, IEnumerable<string>> serviceDependence)

在输入中,我们有一个字典,其中包含<"A", < "B", "C" >><"B", < "A", "D" >>,这意味着类A取决于类B和{{1} }。在输出中,我们在C之间存在循环依赖关系(在更复杂的情况下,它将是一个依赖链)。

我应该使用哪种算法?为什么?

1 个答案:

答案 0 :(得分:2)

如果您可以在图表中转换字典,则可以在其上执行topological sort。 如果存在循环依赖,则排序将失败,否则它将成功。