Отображение графического потока Path - PullRequest
0 голосов
/ 09 марта 2020

У меня есть граф потока, и у каждого узла и ребра есть некоторые атрибуты. Затем я использую следующий код, чтобы получить кратчайший путь между двумя узлами:

AStar astar = new AStar(graph);
astar.setCosts(new DistanceCosts());
astar.setSource(fromNodeIdentifierString);
astar.setTarget(toNodeIdentifierString);
astar.compute();
org.graphstream.graph.Path p = astar.getShortestPath();

Как я могу затем удалить из графа все узлы, которые не находятся на пути, или каким-то иным образом превратить путь в граф ?

Я пытался

graph.clear()
for (Node n : p.getNodeSet())
{
    graph.addNode(n);
}

, но очевидно, что это не работает, потому что вы не можете добавить объект Node, только создать новый Node с заданным идентификатором. Нужно ли вообще воссоздавать весь путь как узлы и ребра со всеми атрибутами et c. воссоздан снова; или проработать все узлы на графике и удалить те, чьи идентификаторы не совпадают с идентификаторами в пути? Конечно, есть более эффективный способ получить график с пути?

...