Я использую QuickGraph для создания ориентированного ациклического графа. Мне нужно найти все вершины, у которых степень равна нулю. Я не вижу эту поддержку в коллекции Vertices
графика или способе фильтрации с использованием LINQ.Поиск в QuickGraph для вершин
Здесь пока структура выборки данных я сочиняю:
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
@chiccodoro Спасибо! Я не понимаю, почему это тоже неясно. –
Имеет ли 'Vertex' что-либо вроде свойства' IncomingEdges' или, по крайней мере, что-то вроде свойства 'AdjacentEdges'? Затем, конечно, вы можете фильтровать, используя 'componentGraph.Vertices.Where (v =>! V.IncomingEdges.Any()' или подобное. Однако я считаю, что вам нужна реализация определенного алгоритма, чтобы сделать это более эффективным ... – chiccodoro