1 回答

TA貢獻1865條經驗 獲得超7個贊
您可以使用無向圖類來實現此目的。
Graph<Node, Edge> graph = new DirectedPseudograph<>(Edge.class);
Node bn1 = new Node("1", "A", null);
Node bn2 = new Node("2", "B", null);
Node bn3 = new Node("3", "C", null);
graph.addVertex(bn1);
graph.addVertex(bn2);
graph.addVertex(bn3);
Edge edge1 = new Edge("PART_OF");
Edge edge2 = new Edge("IS_A");
graph.addEdge(bn1, bn2, edge1);
graph.addEdge(bn3, bn2, edge2);
Graph<Node, Edge> undirGraph=new AsUndirectedGraph<>(graph);
ShortestPathAlgorithm<Node, Edge> shortestPath = new DijkstraShortestPath<Node, Edge>(undirGraph);
注意:您可能希望使用 與 a 相對,除非您確實需要多個邊/自循環。SimpleDirectedGraphDirectedPseudograph
添加回答
舉報