无论如何,有没有办法检测由快速图形生成的无向图中的所有周期并打印周期列表。我“用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();
现在,我正在寻找一种打印周期的方法。 (我不确定我的代码是否正确,这是我第一次处理快速图形,还是我通常第一次处理图形)。
谢谢您的帮助。
最佳答案
QuickGraph源代码中有一个测试项目,您可以在其中找到QuickGraph方法的示例代码。 DFS也有一些实现。
关于c# - 使用快速图形检测无向图中的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14572303/