M1 - TP Algorithme du texte - Arbre des motifs
Eric Rivals
Décembre 2012
Ce TP porte sur la construction d’un arbre des motifs, ainsi que la recherche de l’ensemble des
motifs de l’arbre dans un texte T.
Vous disposez d’une ébauche de programme dans le fichier C++ suivant arbreMotifs-structures.cpp
qui est sur l’ENT. Ce fichier implante la classe de noeud, celle d’arbre, plusieurs méthodes dont trou-
veFils et ajoutFils pour un noeud.
1 Première partie
1.1 Utilisation de l’arbre des motifs comme s’il était un dictionnaire.
1. On dispose d’un arbre Aet de sa racine. On vous donne un autre mot s. Ecrivez une procédure
trouveMot qui prend sen entrée et répond oui si sest un des motifs stocké dans l’arbre et non
dans le cas contraire.
2. Ecrivez recherchePref( string s) qui echerche le plus long préfixe de squi est un préfixe des
mots de A.
3. On écrit une procédure similaire mais améliorée par rapport à la précédente. Ecrivez trouvePref
qui prend un mot set un indice deb dans s, et qui recherche le plus long mot qui commence en
deb et qui matche un préfixe des mots de A.
1.2 Construction de l’arbre des motifs
1. Implantez la procédure d’ajout d’un motif à un arbre des motifs.
2. Implantez l’algorithme de construction de l’arbre des motifs à partir d’un tableau contenant
tous les motifs. Cet algorithme utilise la procédure précédente. Ceci doit donner un nouveau
constructeur de la classe arbre qui prend en entrée le tableau des motifs et le nombre de motifs
dans ce tableau.
1