У меня есть эта n-арная реализация дерева, в которой каждый класс дерева хранит данные и их дочерние элементы в массиве.
Также есть мой неполный метод equals()
.
public class ArrayNTree<T extends Comparable<T>> implements NTree<T>, Cloneable {
/* Data of the tree*/
private T data;
/* Primary array to store the children */
private ArrayNTree<T>[] children;
...
public boolean equals(Object other) { // FIXME
if (this == other)
return true;
if (other == null)
return false;
if(other instanceof ArrayNTree)
return sameTree( (ArrayNTree<T>) other );
return false;
}
private boolean sameTree(ArrayNTree<T> xpto) {
return (this.data == xpto.data &&
//this.children == xpto.children && ???????
this.size == xpto.size);
}
Мое главное сомнение в том, как мне пройти через каждого ребенка и сравнить с другим деревом, так как это массив, я думаю, что это делает работу немного сложнее