0

我在 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);
        }

如果我计算“node1”,我得到 node2、node3、node4。

我还想做的是计算“node4”并得到node2,node1

4

0 回答 0