我正在使用QuickGraph创建一个有向无环图。我需要找到indegree为零的所有顶点。我在图表的Vertices
集合中看不到这种支持,或者使用LINQ进行过滤的方式。QuickGraph查找顶点的indegree
下面是一个示例数据结构我构成:
var componentGraph = new AdjacencyGraph<Component, Edge<Component>>();
var serverOnMachineA = new TalismaServerComponent("CLTDEPAPI10");
var serverOnMachineB = new TalismaServerComponent("CLTDEPAPI11");
var appServerOnMachineB = new TalismaAppServerComponent("CLTDEPAPI11");
var webComponentsOnMachineC = new TalismaWebComponentsComponent("CLTDEPFE1");
componentGraph.AddVertex(serverOnMachineA);
componentGraph.AddVertex(serverOnMachineB);
componentGraph.AddVertex(appServerOnMachineB);
componentGraph.AddVertex(webComponentsOnMachineC);
componentGraph.AddEdge(new Edge<Component>(appServerOnMachineB, serverOnMachineA));
componentGraph.AddEdge(new Edge<Component>(webComponentsOnMachineC, appServerOnMachineB));
componentGraph.AddEdge(new Edge<Component>(webComponentsOnMachineC, serverOnMachineB));
我只需要在这个图中的顶点的列表不具有“中的”边缘(入度= 0)。
谁投票结束?这个问题有什么不清楚的地方?我投票弃权。 – chiccodoro 2014-08-29 13:59:32
@chiccodoro谢谢!我不明白为什么这个也不清楚。 – 2014-08-29 14:13:43
'Vertex'是否具有类似IncomingEdges属性或至少类似AdjacentEdges属性的东西?然后,当然,你可以通过使用'componentGraph.Vertices.Where(V型滤池=>!v.IncomingEdges.Any()'或相似的。不过,我想你需要一定的算法的实现,使这个更好的性能... – chiccodoro 2014-09-01 06:42:13