From 73e92d24cbdb14c242bba6f89b955ab24519a877 Mon Sep 17 00:00:00 2001 From: vsalingu Date: Tue, 30 Apr 2019 18:29:46 +0200 Subject: [PATCH] Modifications de la fonction d'affichage --- dico | Bin 16616 -> 0 bytes dico.c | 38 +++++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/dico b/dico index 0f08697..b1acd6d 100755 Binary files a/dico and b/dico differ diff --git a/dico.c b/dico.c index a898ae3..03364a9 100644 --- a/dico.c +++ b/dico.c @@ -1,6 +1,7 @@ #include #include #include +#include typedef struct cell* ptarbre; @@ -58,7 +59,7 @@ void ajout_dico(ptarbre *parbre, ptarbre *parbresuiv, char lettre) printf("ajout lettre : %c à %p \n",(*parbresuiv)->lettre, parbresuiv); } -void affiche_dico(ptarbre arbre) +void affiche_dico(ptarbre arbre, int n_lettre, char mot[]) // affiche tout le dictionnaire à partir de l'arbre (donc le numéro de lettre) sélectionné { if(arbre == NULL) @@ -67,17 +68,23 @@ void affiche_dico(ptarbre arbre) } else { - if (arbre->fils!=NULL) + if (arbre->fils != NULL) { - printf("%c\n", (arbre->lettre)); - while(arbre->suivant !=NULL) - { - printf("%c\n", (arbre->lettre)); - affiche_dico(arbre->fils); - arbre=arbre->suivant; - } + printf("%c",arbre->lettre); + mot[n_lettre]=arbre->lettre; + n_lettre++; + affiche_dico(arbre->fils,n_lettre,mot); } - } + printf("\n"); + if (arbre->suivant != NULL) + { + printf("%s",mot); + affiche_dico(arbre->suivant, n_lettre, mot); + } + mot[n_lettre]=0; + n_lettre--; + + } } @@ -101,7 +108,8 @@ int main() ptarbre arbre_originel,arbre,arbre_prec; arbre_originel=NULL; arbre=NULL; - char c,t; + char c,t, mot[30]; + int n_lettre=0; ptarbre rec; // Ouvrir fichier FILE *fp = fopen("words1.txt","r"); @@ -133,10 +141,10 @@ int main() { printf("rech suiv = NUll \n"); - ajout_dico(&(arbre),&(rec),c); + ajout_dico(&(arbre),&(rec->suivant),c); // printf("ajout de : %c à %p et fils :%p\n", rec->lettre, rec, rec->fils); arbre_prec=arbre; - arbre=rec->fils; + arbre=rec->suivant->fils; } @@ -159,14 +167,14 @@ int main() arbre_prec->fin_mot=true; // Cette lettre est la dernière du mot } - affiche_dico(arbre_originel); + affiche_dico(arbre_originel,n_lettre,mot); printf("remise à 0\n"); arbre=arbre_originel; // On revient en haut de l'arbre pour commencer un nouveau mot } //arbre=arbre_originel; } printf("arbre originel lettre %c \n", arbre_originel->fils->lettre); - affiche_dico(arbre_originel); + affiche_dico(arbre_originel,n_lettre,mot); free_tree(&arbre); fclose(fp); -- libgit2 0.21.2