2

无论如何要检测快速图生成的无向图中的所有循环并打印循环列表。我“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();

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

谢谢您的帮助。

4

0 回答 0