我在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