Commit ebd317c59ac816eee77eef7bdc9d895bfc84d509
1 parent
2d053d06
Projet modifié
Showing
1 changed file
with
41 additions
and
8 deletions
Show diff stats
correcteur.c
... | ... | @@ -90,7 +90,7 @@ void ajout_alphab(Node ** pn, char * mot,int cpt) |
90 | 90 | Node * charger_arbre(Node ** Arbre){ |
91 | 91 | FILE * dico; |
92 | 92 | char mot[MAX_LETTRES]; |
93 | - dico = fopen("text.txt","r"); | |
93 | + dico = fopen("test.txt","r"); | |
94 | 94 | int i; |
95 | 95 | while ((i = fscanf(dico,"%s",mot)) == 1){ |
96 | 96 | ajout_alphab(Arbre,mot,0); |
... | ... | @@ -106,7 +106,7 @@ Node * charger_arbre(Node ** Arbre){ |
106 | 106 | |
107 | 107 | void affichage_arbre(Node * Arbre) |
108 | 108 | { |
109 | - if (Arbre->l == '?' && is_leaf(Arbre)){ | |
109 | + if (is_empty(Arbre)){ | |
110 | 110 | printf("arbre vide \n"); |
111 | 111 | return; |
112 | 112 | } |
... | ... | @@ -126,16 +126,13 @@ void affichage_arbre(Node * Arbre) |
126 | 126 | |
127 | 127 | void detruire_arbre(Node ** Arbre) |
128 | 128 | { |
129 | - printf("---------- \n"); | |
130 | - printf("%p \n",*Arbre); | |
129 | + | |
131 | 130 | if (is_empty(*Arbre)) return; |
132 | - printf("%c \n",(*Arbre)->l); | |
133 | 131 | for (int i=0; i<size; i++){ |
134 | 132 | detruire_arbre(&(*Arbre)->lettres[i]); |
135 | 133 | } |
136 | 134 | free(*Arbre); |
137 | - printf("suppression \n"); | |
138 | - printf("%p \n",*Arbre); | |
135 | + *Arbre=NULL; | |
139 | 136 | } |
140 | 137 | |
141 | 138 | |
... | ... | @@ -147,10 +144,45 @@ void initialisation(Node ** Arbre){ |
147 | 144 | Node *nouveau = malloc(sizeof(struct node)); |
148 | 145 | (*nouveau).l='?'; |
149 | 146 | for (int i=0; i<size; i++) nouveau->lettres[i] = NULL; |
150 | - *Arbre = nouveau; | |
147 | + *Arbre = nouveau;} | |
148 | + | |
149 | + | |
150 | + | |
151 | + | |
152 | + | |
153 | + | |
154 | +void comparaison(Node ** pn, char * mot,int cpt) | |
155 | +{ | |
156 | + char lettre=mot[cpt]; | |
157 | + int pos = lettre - 'a'; | |
158 | + cpt++; | |
159 | + if (lettre == '\0'){ | |
160 | + if((*pn).fin_de_mot=0) printf("erreur \n"); | |
161 | + return; | |
162 | + } | |
163 | + if (tmp->lettres[pos] == NULL) { | |
164 | + printf("erreur \n"); | |
165 | + } | |
166 | + return comparaison(&pn->lettres[pos],mot,cpt); | |
167 | + | |
168 | + | |
169 | +} | |
170 | + | |
171 | +void test_erreur(){ | |
172 | + Node * Dico; | |
173 | + charger_arbre(&Dico); | |
174 | + FILE * texte; | |
175 | + char mot[MAX_LETTRES]; | |
176 | + texte = fopen("texte.txt","r"); | |
177 | + int i; | |
178 | + while ((i = fscanf(texte,"%s",mot)) == 1){ | |
179 | + comparaison(&Dico,mot,0); | |
180 | + } | |
181 | + fclose(texte); | |
151 | 182 | } |
152 | 183 | |
153 | 184 | |
185 | + | |
154 | 186 | |
155 | 187 | |
156 | 188 | |
... | ... | @@ -162,5 +194,6 @@ int main(){ |
162 | 194 | printf("Arbre fini \n"); |
163 | 195 | detruire_arbre(&Arbre); |
164 | 196 | affichage_arbre(Arbre); |
197 | + test_erreur(); | |
165 | 198 | return 0; |
166 | 199 | } | ... | ... |