diff --git a/tree.c b/tree.c index 9bb1bb3..13ea06e 100644 --- a/tree.c +++ b/tree.c @@ -4,91 +4,63 @@ #define size 50 #define taille 26 -struct Noeud { char valeur;struct liste * fils; int complet;}; +struct noeud { char valeur; struct noeud * fils[28]; int complet;}; +struct dico {struct noeud* tableau[26];}; +typedef struct noeud* Noeud; -struct liste { struct Noeud * noeud; struct liste * suivant;}; -struct dico {struct Noeud tableau[26];int dernier;}; - -//typedef struct liste* liste; - -typedef struct Noeud Noeud; - - -Noeud* cons_noeud (char a) +void cons_noeud (Noeud * pN, char a) { - Noeud * N = malloc(sizeof(struct Noeud)); - N->valeur=a; - N->fils=NULL; - N->complet=0; - return N; + *pN = malloc(sizeof(struct noeud)); + (*pN)->valeur=a; + (*pN)->complet=0; + for(int i=0; i<28; i++) + { + (*pN)->fils[i]=NULL; + } } - -/*void ajout_lettre (Noeud * N , char a) + +void ajout_noeud_dico(struct dico * D, Noeud N) { - if(N==NULL) - N=cons_noeud(a); - else - - ((N->fils)->noeud)->valeur=a; - ((N->fils)->noeud)->fils=NULL; - (N->fils)->suivant=NULL; + int i=0; + while(D->tableau[i]!=NULL) + {i++;} + D->tableau[i]=N; +} - - }*/ +void ajout_mot(Noeud * pN, char mot[size]) +{ + if(*pN==NULL) + { + cons_noeud(pN,mot[0]); + sup_lettre(mot); + } + else + +} -//Reprendre cette fonction! -void ajout_mot (struct dico * D, char mot[size]) +char * sup_lettre(char mot[size]) { - Noeud *N; - 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=1; 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; - + printf("%s\n",mot); } +//Reprendre cette fonction! -void cons_dico(FILE* fp, struct dico* D) -{ char a; - D->dernier=-1; +/*void cons_dico_file(FILE* fp, struct dico* D) +{ char mot[size]; if(fp==NULL) return; - while(fscanf(fp,"%s",&a)!=EOF) - { ajout_mot(D,&a); - D->dernier++;} + while(fscanf(fp,"%s",a)==1) + { ajout_mot(D,a); + //D->dernier++;} -} + }*/ -int rech_mot(struct dico D,char mot [size]) +/*int rech_mot(struct dico D,char mot [size]) { Noeud N; int nbre; @@ -104,22 +76,22 @@ int rech_mot(struct dico D,char mot [size]) else nbre=0; } - if(N.complet==1) + if(N.complet==1)return newmot nbre=1; } else nbre= 0; } return nbre; -} + }*/ -void correction_texte(char filename[size], struct dico D) +/*void correction_texte(char filename[size], struct dico D) { FILE *fp=fopen(filename, "r"); char mot[size]; int x; - if(fp==NULL) + if(fp==NULL)return newmot return; else { @@ -135,11 +107,13 @@ void correction_texte(char filename[size], struct dico D) } -} -int main(){ - struct dico d; - ajout_mot(&d,"emilie"); - printf( "%c",d.tableau[0].valeur); - return 0; + }*/ + +int main() +{ + char* newmot; + sup_lettre("emilie"); + + return 0; } -- libgit2 0.21.2