diff --git a/tree.c b/tree.c index 21a0aed..9bb1bb3 100644 --- a/tree.c +++ b/tree.c @@ -4,59 +4,76 @@ #define size 50 #define taille 26 -struct Noeud { char valeur;struct liste * fils; char complet;}; +struct Noeud { char valeur;struct liste * fils; int complet;}; struct liste { struct Noeud * noeud; struct liste * suivant;}; struct dico {struct Noeud tableau[26];int dernier;}; -typedef struct liste * liste; +//typedef struct liste* liste; typedef struct Noeud Noeud; -Noeud cons_noeud (char a) +Noeud* cons_noeud (char a) { Noeud * N = malloc(sizeof(struct Noeud)); N->valeur=a; N->fils=NULL; N->complet=0; - return * N; + return N; } -void ajout_lettre (Noeud * N , char a) +/*void ajout_lettre (Noeud * N , char a) { - if(N==NULL) - cons_noeud(a); - else - { ((N->fils)->noeud)->valeur=a; - ((N->fils)->noeud)->fils=NULL; + if(N==NULL) + N=cons_noeud(a); + else + + ((N->fils)->noeud)->valeur=a; + ((N->fils)->noeud)->fils=NULL; + (N->fils)->suivant=NULL; - } -} + + }*/ //Reprendre cette fonction! void ajout_mot (struct dico * D, char mot[size]) { Noeud *N; - for (int j=0;jdernier;j++) - { if(D->tableau[j].valeur== mot[0]) - { - *N=D->tableau[j]; - } - else - { - *N=cons_noeud(mot[0]); - } + int j = 0 ; + while (jdernier && D->tableau[j].valeur != mot[0]) + j++ ; + if(j < D->dernier) + { + N=&(D->tableau[j]); + } + else + { + N=cons_noeud(mot[0]); + } - for (int i=0; ifils->noeud)!=NULL) + { + N=N->fils->suivant->noeud; + N=cons_noeud(mot[i]); + //ajout_lettre(N,mot[i]); + } + else + { N=N->fils->noeud; + N=cons_noeud(mot[i]); + //ajout_lettre (N,mot[i]); + // N=N->fils->noeud; + } - N->complet=1; - } + + } + N->complet=1; + } @@ -74,7 +91,7 @@ void cons_dico(FILE* fp, struct dico* D) int rech_mot(struct dico D,char mot [size]) { Noeud N; - D.dernier=-1; + int nbre; for(int i=0;ifils->noeud; + N=*(N.fils)->noeud; + else + nbre=0; } - return 1; - - if(N.complet=1) - return 1; + if(N.complet==1) + nbre=1; } else - return 0; + nbre= 0; } + return nbre; } - - +void correction_texte(char filename[size], struct dico D) +{ + FILE *fp=fopen(filename, "r"); + char mot[size]; + int x; + if(fp==NULL) + return; + else + { + while(fscanf(fp,"%s",mot)==1) + { + x=rech_mot(D,mot); + if(x==0) + { + printf("il y a une erreur!\n"); + printf("%s",mot); + } + } + } + + +} +int main(){ + struct dico d; + ajout_mot(&d,"emilie"); + printf( "%c",d.tableau[0].valeur); + return 0; +} + -- libgit2 0.21.2