Commit 73e92d24cbdb14c242bba6f89b955ab24519a877
1 parent
04b8ce94
Modifications de la fonction d'affichage
Showing
2 changed files
with
23 additions
and
15 deletions
Show diff stats
dico
No preview for this file type
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | #include <stdbool.h> | 3 | #include <stdbool.h> |
4 | +#include <string.h> | ||
4 | 5 | ||
5 | 6 | ||
6 | typedef struct cell* ptarbre; | 7 | typedef struct cell* ptarbre; |
@@ -58,7 +59,7 @@ void ajout_dico(ptarbre *parbre, ptarbre *parbresuiv, char lettre) | @@ -58,7 +59,7 @@ void ajout_dico(ptarbre *parbre, ptarbre *parbresuiv, char lettre) | ||
58 | printf("ajout lettre : %c à %p \n",(*parbresuiv)->lettre, parbresuiv); | 59 | printf("ajout lettre : %c à %p \n",(*parbresuiv)->lettre, parbresuiv); |
59 | } | 60 | } |
60 | 61 | ||
61 | -void affiche_dico(ptarbre arbre) | 62 | +void affiche_dico(ptarbre arbre, int n_lettre, char mot[]) |
62 | // affiche tout le dictionnaire à partir de l'arbre (donc le numéro de lettre) sélectionné | 63 | // affiche tout le dictionnaire à partir de l'arbre (donc le numéro de lettre) sélectionné |
63 | { | 64 | { |
64 | if(arbre == NULL) | 65 | if(arbre == NULL) |
@@ -67,17 +68,23 @@ void affiche_dico(ptarbre arbre) | @@ -67,17 +68,23 @@ void affiche_dico(ptarbre arbre) | ||
67 | } | 68 | } |
68 | else | 69 | else |
69 | { | 70 | { |
70 | - if (arbre->fils!=NULL) | 71 | + if (arbre->fils != NULL) |
71 | { | 72 | { |
72 | - printf("%c\n", (arbre->lettre)); | ||
73 | - while(arbre->suivant !=NULL) | ||
74 | - { | ||
75 | - printf("%c\n", (arbre->lettre)); | ||
76 | - affiche_dico(arbre->fils); | ||
77 | - arbre=arbre->suivant; | ||
78 | - } | 73 | + printf("%c",arbre->lettre); |
74 | + mot[n_lettre]=arbre->lettre; | ||
75 | + n_lettre++; | ||
76 | + affiche_dico(arbre->fils,n_lettre,mot); | ||
79 | } | 77 | } |
80 | - } | 78 | + printf("\n"); |
79 | + if (arbre->suivant != NULL) | ||
80 | + { | ||
81 | + printf("%s",mot); | ||
82 | + affiche_dico(arbre->suivant, n_lettre, mot); | ||
83 | + } | ||
84 | + mot[n_lettre]=0; | ||
85 | + n_lettre--; | ||
86 | + | ||
87 | + } | ||
81 | 88 | ||
82 | } | 89 | } |
83 | 90 | ||
@@ -101,7 +108,8 @@ int main() | @@ -101,7 +108,8 @@ int main() | ||
101 | ptarbre arbre_originel,arbre,arbre_prec; | 108 | ptarbre arbre_originel,arbre,arbre_prec; |
102 | arbre_originel=NULL; | 109 | arbre_originel=NULL; |
103 | arbre=NULL; | 110 | arbre=NULL; |
104 | - char c,t; | 111 | + char c,t, mot[30]; |
112 | + int n_lettre=0; | ||
105 | ptarbre rec; | 113 | ptarbre rec; |
106 | // Ouvrir fichier | 114 | // Ouvrir fichier |
107 | FILE *fp = fopen("words1.txt","r"); | 115 | FILE *fp = fopen("words1.txt","r"); |
@@ -133,10 +141,10 @@ int main() | @@ -133,10 +141,10 @@ int main() | ||
133 | { | 141 | { |
134 | 142 | ||
135 | printf("rech suiv = NUll \n"); | 143 | printf("rech suiv = NUll \n"); |
136 | - ajout_dico(&(arbre),&(rec),c); | 144 | + ajout_dico(&(arbre),&(rec->suivant),c); |
137 | // printf("ajout de : %c à %p et fils :%p\n", rec->lettre, rec, rec->fils); | 145 | // printf("ajout de : %c à %p et fils :%p\n", rec->lettre, rec, rec->fils); |
138 | arbre_prec=arbre; | 146 | arbre_prec=arbre; |
139 | - arbre=rec->fils; | 147 | + arbre=rec->suivant->fils; |
140 | } | 148 | } |
141 | 149 | ||
142 | 150 | ||
@@ -159,14 +167,14 @@ int main() | @@ -159,14 +167,14 @@ int main() | ||
159 | arbre_prec->fin_mot=true; // Cette lettre est la dernière du mot | 167 | arbre_prec->fin_mot=true; // Cette lettre est la dernière du mot |
160 | } | 168 | } |
161 | 169 | ||
162 | - affiche_dico(arbre_originel); | 170 | + affiche_dico(arbre_originel,n_lettre,mot); |
163 | printf("remise à 0\n"); | 171 | printf("remise à 0\n"); |
164 | arbre=arbre_originel; // On revient en haut de l'arbre pour commencer un nouveau mot | 172 | arbre=arbre_originel; // On revient en haut de l'arbre pour commencer un nouveau mot |
165 | } | 173 | } |
166 | //arbre=arbre_originel; | 174 | //arbre=arbre_originel; |
167 | } | 175 | } |
168 | printf("arbre originel lettre %c \n", arbre_originel->fils->lettre); | 176 | printf("arbre originel lettre %c \n", arbre_originel->fils->lettre); |
169 | - affiche_dico(arbre_originel); | 177 | + affiche_dico(arbre_originel,n_lettre,mot); |
170 | free_tree(&arbre); | 178 | free_tree(&arbre); |
171 | fclose(fp); | 179 | fclose(fp); |
172 | 180 |