Salut à tous,

Je suis en train de créer une classe qui permet de construire un arbre à lettres.
L’idée est de regrouper tous les mots en un arbre dont chaque arc représente une lettre. Donc un mot sera représenté par un chemin de la racine à un nœud contenant la valeur “fin de mot”.
En fait, il s'agit d'une manière compacte de représenter un ensemble de mot, comme par exemple un dictionnaire. Je veux ajouter deux méthodes, l'une pour tester si un mot introduit par l'utilisateur appartient déjà à l'arbre et une autre méthode pour permettre d'y ajouter un mot. J'utilise pas la JTree, tout est fait avec l'array.
Je vous envoie ci-dessous mon code avec quelques commentaires.

Quelqu'un pourrait m'aider?

Merci.

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
import java.io.*; 
import java.util.*; 
public class ArbreLettre
{ 
    char lettre; 
    boolean finDeMot; 
    ArrayList lettresSuivantes; 
 
 
    /* constructeur */ 
    ArbreLettre(char c)
    { 
        lettre = c; 
        finDeMot = false; 
        lettresSuivantes = new ArrayList(); 
    } 
 
 
    /* permet de modifier la variable finDeMot 
       pour indiquer si un sous-arbre correspond ou non à la fin d'un mot */ 
    void setFinDeMot(boolean b)
    { 
        finDeMot = b; 
    } 
 
 
    /* teste si l'arbre correspond à la fin d'un mot (dernière lettre) */ 
    boolean isFinDeMot()
    { 
        return finDeMot; 
    } 
 
 
    /* teste si le caractère c est l'une des lettres suivant la lettre courante */ 
    boolean contientLettre(char c)
    { 
        for (int i=0; i<lettresSuivantes.size();i++)
	{ 
            ALettre a = (ALettre)lettresSuivantes.get(i); 
            if (a.lettre == c) return true; 
        } 
        return false; 
    } 
 
 
    /* retourne le sous-arbre (lettre suivante) correspondant au caractère c */ 
    ALettre getSousArbre(char c)
    { 
        for (int i=0; i<lettresSuivantes.size();i++)
	{ 
            ALettre a = (ALettre)lettresSuivantes.get(i); 
            if (a.lettre == c) return a; 
        } 
        return null; 
    } 
 
 
    /* ajoute mot dans l'arbre à lettres */ 
    void ajouterMot(String mot){ 
 
    } 
    /* teste si mot existe dans l'arbre à lettre */ 
    boolean contientMot(String mot){ 
 
    }
 
}