私はノードの、各ノードは他の人に接続できる場所でグラフのクラスを持っている:深いコピーグラフ構造
public class Node {
List<Node> connections;
}
私は、グラフ全体の深いコピーを作成したいと思います。
public Node(Node other) {
connections = new ArrayList<Node>();
for (Node n : other.connections) {
connections.add(new Node(n));
}
}
だから、深いコピーはグラフだけで次のようになります:最初の試みとして、私のようなコピーコンストラクタを作ってみました
public Graph deepCopy() {
Graph g = new Graph();
g.nodes = new ArrayList<Node>();
for (Node n : nodes) {
g.nodes.add(new Node(n));
}
}
しかし、それは間の接続関係を破壊するとして、それは動作しません。ノード。誰かがこれを簡単なやり方でやるよう提案しているのではないかと疑問に思っていますか?ありがとう。
IdentityHashMapについて知らない方は、[documentation](http://docs.oracle.com/javase/7/docs/api/java/util/IdentityHashMap.html)を参照してください。 – Swapnil
グラフにサイクル、右? –
@GonçaloRibeiro:はい、そうです。私はこれをしばらく前に書きましたので、私は絶対に確信していませんが、私たちがそれらの接続を訪問する前に同型写像にノードを置くという事実は、サイクルが正しく処理されることを意味します。 –