ノードを取得し、これと隣接するすべてのノードをコピーして、このノードとまったく同じ新しい構造を作成する関数。
A
/ \
B CE
\ /
D
新しいノードで同様のネットワークを作成する必要があります
Node オブジェクトは次のように定義されます。
ノード{
配列リストの隣人。// 配列リスト内のすべての隣接ノードを返します
}
このコードは機能しますか?
public Node copyGraph(Node A){
HashTable<Node, Node> hash = new HashTable<Node, Node> ();
return copyGraphWithHash(A, hash);
}
public Node copyGraphWithHash(Node A, HashTable<Node, Node> hash){
if (A.neighbours.size() == 0)
return null;
Node newfirst = null;
if(!hash.hasKey(A))
newfirst = new Node();
hash.add(A,newfirst);
}
for ( Node n : A.neighbours()){
if (copyGraphWithHash(n, hash))
newfirst.neightbours.add(copyGraphWithHash(n, hash));
}
return newfirst;
}
ここで何が欠けているか教えてください。