Bonjour à tous,
voici mon problème, j'ai un arbre du type:
Mon problème vient de la méthode elements() qui est censée retourner un itérateur sur l'arbre (donc renvoyer chaque valeur de chaque branche).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 package arbre; import java.util.*; /** * * @author Tuxico */ public class Arbre { private int value; private Vector<Arbre> fils; public Arbre(int n){ this.value = n; fils = new Vector<Arbre>(); } public int getValue(){ return this.value; } public void ajouteFils(Arbre t){ if(!(this.fils.contains(t))){ this.fils.add(t); } } public void setValue(int n){ this.value = n; } public Arbre donneFils(int n){ try{ return this.fils.get(n); }catch(ArrayIndexOutOfBoundsException e){ e.toString(); return null; } } public int getFilsSize(){ return this.fils.size(); } public ArbreIterator elements(){ return new ArbreIterator(this); } }
Je ne vois pas comment créer un itérateur pour ce type d'arbre étant donné que le nombre de fils peut varier de 0 à n et que chaque fils peut lui-même avoir 0 à n fils (un arbre quoi )
Je sais que je vais devoir utiliser la récursion mais je ne peux pas modifier l'en-tête de next() ou hasNext() sinon ça ne respecte pas les règles des interfaces.
D'où ma question, comment itérer sur un tel arbre?
merci.
Partager