C# 用快速图检测无向图中的圈

C# 用快速图检测无向图中的圈,c#,cycle,depth-first-search,quickgraph,C#,Cycle,Depth First Search,Quickgraph,是否仍然可以检测使用quick graph生成的无向图中的所有循环,并打印循环列表。我在谷歌上搜索了一下,我知道可以使用“深度优先搜索算法”来检测图形中的循环。然后我尝试了这样的方法: var g = new UndirectedGraph<int, TaggedUndirectedEdge<int, int>>(); var e1 = new TaggedUndirectedEdge<int, int>(1, 2, 57);//dem(1, 2, 57).

是否仍然可以检测使用quick graph生成的无向图中的所有循环,并打印循环列表。我在谷歌上搜索了一下,我知道可以使用“深度优先搜索算法”来检测图形中的循环。然后我尝试了这样的方法:

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();
var g=新的无向图();
var e1=新标记DundDirectedEdge(1,2,57)//数字高程模型(1,2,57)。
var e2=新标记DundDirectedEdge(1,4,65)//数字高程模型(1,4,65)。
var e3=新标记DundDirectedEdge(2,3,155)//数字高程模型(2,3155)。
var e4=新标记DundDirectedEdge(2,4,129)//数字高程模型(2,4129)。
var e5=新标记DundDirectedEdge(3,4,78);//数字高程模型(3,4,78)。
var e6=新标记dundirectedge(3,5200);//数字高程模型(3,5200)。
g、 AddVerticesAndEdge(e1);
g、 AddVerticesAndEdge(e2);
g、 AddVerticesAndEdge(e3);
g、 AddVerticesAndEdge(e4);
g、 AddVerticesAndEdge(e5);
g、 AddVerticesAndEdge(e6);
var dfs=新的无向DepthFirstSearchAlgorithm(g);
dfs.Compute();
现在我正在寻找一种打印周期的方法。(我不确定我的代码是否正确这是我第一次处理quick graph,甚至是第一次处理graph)


感谢您的帮助。

+1感谢您发布如何安装UndirectedGraph类,因为C#-QuickGraph的文档似乎缺少它。所以问题是如何在图形中打印循环?你能更详细地解释一下你的要求吗?(我知道这是个老问题)