J'essaye d'écrire une classe qui implémente un arbre en utilisant un tableau et j'ai besoin d'aide pour écrire une méthode Iterator qui retourne un itérateur des éléments stockés dans l'arbre.Java Array Tree Iterator
Solution:
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();
}
}
}
Exactement ce dont vous avez besoin pour itérer? Étant donné un nœud, voulez-vous itérer sur ses descendants directs ou * tous * ses descendants? Le premier est trivial, le dernier est un peu compliqué. –
Quel devrait être l'ordre d'itération? Et comment quelqu'un ajoute des nœuds à votre classe ArrayTree de toute façon? –
En ce qui concerne votre [question précédente] (http://stackoverflow.com/questions/3901991/java-arraytree-help/3901996): Si vous trouvez la réponse utile (ce que vous semblez avoir fait, comme vous l'avez posté (et reçu la réponse à) 8 questions de suivi), vous devriez augmenter la réponse au lieu de supprimer toute la question et les réponses avec elle. – aioobe