0

UndirectedGraphの使用法に問題があります。私のコード:

UndirectedGraph<String, DefaultEdge> graph =
            new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);

 String v1 = "v1";
 String v2 = "v2";
 String v3 = "v3";
 String v4 = "v4";

 graph.addVertex(v1);
 graph.addVertex(v2);
 graph.addVertex(v3);
 graph.addVertex(v4);

 graph.addEdge(v1, v2);
 graph.addEdge(v2, v3);
 graph.addEdge(v3, v4);
 graph.addEdge(v4, v1);

各頂点がグラフに正常に追加されました。Hovewer、addEdgeメソッドが正しく機能しませんでした。このコードをデバッグすると、最初のaddEdge行でクラスが見つからないという例外がスローされました。

私はあなたが私を助けてくれることを願っています。ありがとう。

4

1 に答える 1

1

jgrapht-0.8.3では、以下が期待どおりに機能します。

import org.jgrapht.UndirectedGraph;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.SimpleGraph;

public class GraphTest {

  public static void main(String[] args) {
    UndirectedGraph<String, DefaultEdge> graph =
      new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);

    String v1 = "v1";
    String v2 = "v2";
    String v3 = "v3";
    String v4 = "v4";

    graph.addVertex(v1);
    graph.addVertex(v2);
    graph.addVertex(v3);
    graph.addVertex(v4);

    graph.addEdge(v1, v2);
    graph.addEdge(v2, v3);
    graph.addEdge(v3, v4);
    graph.addEdge(v4, v1);
    
    if( graph.getEdge(v1, v2) != null) { System.out.println("SUCCESS"); }
    if (graph.getEdge(v2,v4) == null)  { System.out.println("SUCCESS"); }
  }
}

私は得る

成功

成功

あなたが抱えている問題を明確にできますか?

于 2012-05-13T20:57:07.167 に答える