【问题标题】:Adding Two Edges - JGraphT添加两条边 - JGraphT
【发布时间】:2018-11-06 07:21:38
【问题描述】:

我正在使用来自JGrapghT 1.2.0 库的SimpleDirectedWeightedGraph。我的目标是在顶点AB 之间创建两条边,这样A <-80-> B。如果我这样做:

graph.addEdge("A", "B", 80);
graph.addEdge("B", "A", 80);
System.out.println(graph.getAllEdges("A", "B"));
System.out.println(graph.getAllEdges("B", "A"));

我明白了:

[80]
[]

而如果我将第二行更改为:graph.addEdge("B", "A", 81);,我会得到

[80]
[81]

为什么我不能在顶点之间创建两条具有相同值的边?

【问题讨论】:

  • 请编辑您的问题,将完整的源代码包含为MCVE,其他人可以编译和测试。

标签: java jgrapht


【解决方案1】:

来自JavaDocsSimpleDirectedGraph

一个简单的有向图。简单有向图是一个有向图,其中任何两个顶点之间都不允许有多个(平行)边,也不允许有环。

【讨论】:

    【解决方案2】:

    你可以试试这个:

    DirectedWeightedMultigraph<String, DefaultWeightedEdge> graph = 
            new  DirectedWeightedMultigraph<String, DefaultWeightedEdge>(DefaultWeightedEdge.class);
    
    // vertices
    String u = "A";
    String v = "B";
    
    // add vertices
    graph.addVertex(u);
    graph.addVertex(v);
    
    // add weighted edges
    graph.setEdgeWeight(graph.addEdge(u, v), 80);
    graph.setEdgeWeight(graph.addEdge(v, u), 80);
    
    // print edge weighted
    System.out.println(graph.getEdgeWeight(graph.getEdge(u, v)));
    System.out.println(graph.getEdgeWeight(graph.getEdge(v, u)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-18
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      相关资源
      最近更新 更多