Bonjour a tous,
Je ne sais pas si je poste dans la bonne section, surement pas je me perds un peu dans ce vaste forum ^^, mais je vais vous expliquer mon probleme.
Mon but est de realiser un dictionnaire sous Java a l'aide d'un arbre n-aire.
J'ai essayer en vain de faire sa moi meme, et donc j'ai trouvé sur le site ce lien :
http://recursivite.developpez.com/?page=page_8#LVII-D
c'est exactement ce que je cherche a faire, mais il est en Delphi, a premiere vue c'est assez similaire a Java mais je n'ai pas reussi a tout traduire surtout ce passage :
Je vous met aussi ce que j'ai reussi a faire !
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 procedure arbre.rajouter_mot(LeMot: string); var lettre: char; begin if LeMot = '' then begin courant.entier := true; exit; end; lettre := LeMot[1]; if courant.fils[lettre] <> nil then // si la lettre existe déjà courant := courant.fils[lettre] // alors on se positionne sur la lettre suivante else // sinon il faut créer cette lettre dans l'arbre begin courant.fils[lettre] := noeud.create; courant := courant.fils[lettre]; courant.lettre := lettre; // la lettre est maintenant dans l'arbre end; delete(LeMot, 1, 1); // on efface la lettre du mot puisqu'elle est déjà dans l'arbre rajouter_mot(LeMot); // et on rajoute le reste end;
Voila j'espere que j'ai bien presenter mon probleme, ma difficulté premiere est le Delphi , et la 2e est les ArrayList, car c'est un type que je n'ai helas jamais utilisé...
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 public class Noeud { //private char root; private ArrayList<Noeud> fils = new ArrayList(); protected char lettre; protected boolean entier; public Noeud(char lettre){ this.lettre='#'; this.entier=false; } public class Arbre { private Noeud tete,courant; public Arbre(){ this.tete = tete; this.courant=courant; } public void rajouter_mot(String LeMot){ char lettre; if (LeMot==null){ courant.entier=true; } lettre = LeMot.charAt(0); ??????? LeMot = LeMot.substring(1); rajouter_mot(LeMot); }
Partager