【发布时间】:2011-04-23 14:13:19
【问题描述】:
我正在尝试编写一个使用数组实现树的类,我需要一些帮助来编写一个迭代器方法,该方法返回存储在树中的元素的迭代器。
解决方案:
public Iterator<E> iterator() {
return new Iterator<E>() {
private int index = 0;
public boolean hasNext() {
return index < ArrayTree.this.size();
}
public E next() {
if (!hasNext()) {
return new NoSuchElementException();
}
return ArrayTree.this.tree[index++];
}
public void remove() {
return new OperationNotSupported();
}
}
}
【问题讨论】:
-
究竟需要迭代什么?给定某个节点,你想遍历它的直接后代还是 all 后代?前者琐碎,后者有点复杂。
-
迭代顺序应该是什么?无论如何,有人如何将节点添加到您的 ArrayTree 类中?
-
关于您的previous question:如果您发现答案有帮助(您似乎确实做到了,因为您发布(并收到了)8 个后续问题的答案),您应该投票而不是投票删除整个问题和答案。