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
2 Algorithme de recherche des motifs dans un texte en utilisant
l’arbre des motifs et ses liens d’échec.
1. Implantez une fonction qui pour un arbre contenant des motifs, calcule les liens d’échec de tous
les noeuds. Vous pouvez décomposez en une sous procédure qui calcule le lien d’échec d’un
noeud donné et qui prend en entrée un pointeur sur ce noeud et un sur son père.
2. Implantez une fonction de la classe arbre qui prend un texte Ten entrée, sa longueur net
effectue la recherche de toutes les occurrences des motifs dans T. Cette recherche doit utiliser
l’arbre des motifs et ses liens d’échec.
3. Optionel : Vous pouvez aussi implanter la recherche naive des mots dans le texte T.
4. Optionel : Vous pouvez aussi implanter le destructeur de la classe arbre.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !