Algorithmique et Structures de données / Eté 2004 Faculté des Sciences Economiques et Sociales Gilles Falquet & El Mustapha El Atifi Exercices Série 7 (0.5pt.) [TP par binômes A rendre avant le 17-juin] Exercice : Complétez la classe ALettre, qui permet de construire un arbre à lettres. Ensuite, utilisez cette classe pour construire un arbre à lettres à partir d'un fichier texte. Finalement, lisez un fichier dont vous afficherez tous les mots qui ne se trouvent pas dans l'arbre à lettres construit à partir du premier fichier. Contenu du fichier « ALettre.java » : import java.io.*; import java.util.*; public class ALettre{ char lettre; boolean finDeMot; ArrayList lettresSuivantes; /* constructeur */ ALettre(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; } 28.05.2004 /* 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){ A COMPLETER } /* teste si mot existe dans l'arbre à lettre */ boolean contientMot(String mot){ A COMPLETER } /* lecture du fichier dico, construction de l'arbre et vérification */ public static void main(String[] args){ A COMPLETER } } 28.05.2004