我一直在尝试对二维数组进行深度复制,但从未成功。这是我的代码。
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 算法制作一个带有 4 个指针的循环双向链表的副本。很难追踪问题出在哪里,但我假设如果原始数组给出“x”作为 Knuth 的 DL 算法的结果,那么原始数组的正确深层副本也会给出“x”作为结果,前提是没有其他变量变化且没有随机修饰符。但是,我尝试了 clone() 方法、arrayutil.copy() 方法,但根据我上面的假设,它们都没有给出“正确”的深层副本。