使用快速图检测无向图中的循环

时间:2013-01-28 22:20:58

标签: c# cycle depth-first-search quickgraph

无论如何都要检测用快速图生成的无向图中的所有周期并打印周期列表。我用Google搜索了一下,我发现可以使用“深度优先搜索算法”检测图形中的周期。然后我尝试了这样的事情:

var g = new UndirectedGraph<int, TaggedUndirectedEdge<int, int>>();

var e1 = new TaggedUndirectedEdge<int, int>(1, 2, 57);//dem(1, 2, 57).
var e2 = new TaggedUndirectedEdge<int, int>(1, 4, 65);//dem(1, 4, 65).
var e3 = new TaggedUndirectedEdge<int, int>(2, 3, 155);//dem(2, 3, 155). 
var e4 = new TaggedUndirectedEdge<int, int>(2, 4, 129);//dem(2, 4, 129).
var e5 = new TaggedUndirectedEdge<int, int>(3, 4, 78);// dem(3, 4, 78).
var e6 = new TaggedUndirectedEdge<int, int>(3, 5, 200);// dem(3, 5, 200).

g.AddVerticesAndEdge(e1);
g.AddVerticesAndEdge(e2);
g.AddVerticesAndEdge(e3);
g.AddVerticesAndEdge(e4);
g.AddVerticesAndEdge(e5);
g.AddVerticesAndEdge(e6);

var dfs = new UndirectedDepthFirstSearchAlgorithm<int, TaggedUndirectedEdge<int, int>>(g);

dfs.Compute();

现在我正在寻找打印周期的方法。 (我不确定我的代码是否正确,这是我第一次处理快速图表,这是我第一次处理图表时)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

QuickGraph源代码中有一个测试项目,您可以在其中找到QuickGraph方法的示例代码。还有一些DFS的实现。