2 次元配列のディープ コピーを実行しようとしましたが、成功しませんでした。これが私のコードです。
class node {
public node head;
public node left;
public node right;
public node up;
public node down;
}
node[][] OriginalArrayOfNode = new node[100][200];
//filling original node
for (int n = 0; n < 200; n++) {
for(int m = 0; m < 100; m++) {
OriginalArrayOfNode[m][n].head = OriginalArrayOfNode[m][0];
OriginalArrayOfNode[m][n].left = ...
//etc
}
}
node[][]CopyArrayOfNode = new node[100][200];
//The code to copy the original array to new array should be here.
私の質問は、 OriginalArrayOfNode から CopyArrayOfNode へのディープコピーを作成するにはどうすればよいですか? 前もって感謝します。
編集 :
Knuth の Dancing Link Algorithm の 4 つのポインターを使用して、循環二重リンク リストのコピーを作成しようとしています。どこに問題があるのかを突き止めるのはかなり難しいですが、元の配列が Knuth の DL アルゴリズムの結果として "x" を与える場合、元の配列の正しいディープ コピーも結果として "x" を与えると思います。他の変数の変更やランダム修飾子がないことを条件とします。ただし、 clone() メソッド、 arrayutil.copy() メソッドを試しましたが、上記の仮定に基づいて「正しい」ディープコピーを提供するものはありません。