2012-03-22 15 views
0

私は2つのクラスを持っています。新しいグラフをJavaで作成

Class Graph { 
    List<Vertex> Vertices; 
} 

Class Vertex { 
    List<Vertex> edges; 
} 

私はグラフを取り、入力グラフオブジェクトのディープコピーである新しいグラフを返しますコピー(グラフG)機能を設計する必要があります。

私は頂点と辺を反復しようとしましたが、リスト内のリストがリスト内に再びリストされています。それは無限ループに入ります。

答えて

1

リストに下位レベルの要素しか含まれていないため、どのように無限ループに入ることができますか?

// To be adapted to your needs of course... 
public Graph copy(Graph g) { 
    Graph gg = new Graph(); 

    for (Vertex v : g.getVertices()) { 
     Vertex vv = new Vertex(); 
     gg.add(vv); 

     for (Edge e : v.getEdges()) { 
      Edge ee = new Edge(); 
      vv.add(ee); 
     } 
    } 

    return gg; 
} 
関連する問題