如何在QuickGraph中进行反向遍历?

时间:2017-02-12 11:39:28

标签: c# quickgraph

我在C#中使用QuickGraph并且有一个图表可以通过在节点上调用Compute并遍历图表来遍历。但是,有时候我想选择一个子节点,它会沿着所有边的反方向移动。

文档很差,所以我想知道是否有人知道如何做到这一点。

这是一个例子

        BidirectionalGraph<string, Edge<string>> graph = new BidirectionalGraph<string, Edge<string>>();

        graph.AddVertex("node1");
        graph.AddVertex("node2");
        graph.AddVertex("node3");
        graph.AddVertex("node4");

        graph.AddEdge(new Edge<string>("node1", "node2"));
        graph.AddEdge(new Edge<string>("node2", "node3"));
        graph.AddEdge(new Edge<string>("node2", "node4"));

        var dfs = new DepthFirstSearchAlgorithm<string, Edge<string>>(graph);
        var observer = new VertexPredecessorRecorderObserver<string, Edge<string>>();
        observer.Attach(dfs);

        dfs.Compute("node1");

        foreach(var obj in observer.VertexPredecessors) {
            System.Console.WriteLine(obj.Key);
        }

如果我计算&#34; node1&#34;,我得到node2,node3,node4。

我还想做的是计算&#34; node4&#34;并获取node2,node1

0 个答案:

没有答案