在线文字转语音网站:无界智能 aiwjzn.com

Java使用JGraphT向图中添加节点和边,指定节点的属性、边的权重

Java使用JGraphT向图中添加节点和边,指定节点的属性、边的权重

依赖类库的Maven坐标: <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-core</artifactId> <version>1.5.1</version> </dependency> 该类库的简要介绍: JGraphT是一个用于表示、建模和操作图的Java类库。它提供了一套丰富的图数据结构(如有向图、无向图、加权图等)以及与之相关的算法和操作。 样例完整Java代码如下所示: import org.jgrapht.Graph; import org.jgrapht.graph.DefaultEdge; import org.jgrapht.graph.SimpleDirectedGraph; public class GraphExample { public static void main(String[] args) { // 创建有向图 Graph<String, DefaultEdge> graph = new SimpleDirectedGraph<>(DefaultEdge.class); // 添加节点 String node1 = "A"; String node2 = "B"; String node3 = "C"; graph.addVertex(node1); graph.addVertex(node2); graph.addVertex(node3); // 添加边,并指定权重 DefaultEdge edge1 = graph.addEdge(node1, node2); graph.setEdgeWeight(edge1, 1.0); DefaultEdge edge2 = graph.addEdge(node2, node3); graph.setEdgeWeight(edge2, 2.0); DefaultEdge edge3 = graph.addEdge(node1, node3); graph.setEdgeWeight(edge3, 3.0); // 输出图的信息 System.out.println("图中的节点:"); for (String vertex : graph.vertexSet()) { System.out.println(vertex); } System.out.println("图中的边及其权重:"); for (DefaultEdge edge : graph.edgeSet()) { String sourceVertex = graph.getEdgeSource(edge); String targetVertex = graph.getEdgeTarget(edge); double weight = graph.getEdgeWeight(edge); System.out.println(sourceVertex + " -> " + targetVertex + ", weight: " + weight); } } } 总结:本文介绍了使用JGraphT来向图中添加节点和边,并指定节点的属性和边的权重的方法。通过简单的示例代码,展示了如何使用JGraphT创建有向图,添加节点和边,并输出图的信息。JGraphT是一个功能强大的用于处理图的Java类库,可以满足各种图相关的需求,如图的建模、算法分析等。