From 7a7157b041a96871d216801f6f13ecbfddd8013c Mon Sep 17 00:00:00 2001 From: rsimonin Date: Wed, 3 Apr 2019 16:09:27 +0200 Subject: [PATCH] modification creation de arbre --- arbre.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/arbre.c b/arbre.c index cf844c5..bc612b9 100644 --- a/arbre.c +++ b/arbre.c @@ -32,8 +32,7 @@ bool fin_de_mot(struct arbre *arbre) return arbre->finmot; } -void cons_dico(struct dico **pt_dico,char val){ - Dico *mondico=malloc(sizeof(struct dico)); +void cons_dico(struct dico **ppt_dico,char val){ Arbre *monarbre=malloc(sizeof(struct arbre)); monarbre->val=val; monarbre->finmot=false; @@ -42,8 +41,7 @@ void cons_dico(struct dico **pt_dico,char val){ monarbre->suite[i]=NULL; } - mondico->alpha[val-'a']=monarbre; - (*pt_dico)=mondico; + (*ppt_dico)->alpha[val-'a']=monarbre; } void ini_dico(struct dico * pt_dico){ @@ -54,25 +52,27 @@ void ini_dico(struct dico * pt_dico){ } -void ajout_mot(struct arbre *pt_arbre,char *mot, int i){ - - while(mot[i]!='\0'){ - - - if (pt_arbre==NULL){ +void ajout_mot(struct arbre **pt_arbre,char *mot, int i){ + printf("%d",i); + printf("%c",mot[i]); + while(mot[i]!='\0'){ + if (*pt_arbre==NULL){ + printf("creation arbre\n"); Arbre *monarbre=malloc(sizeof(struct arbre)); monarbre->val=mot[i]; monarbre->finmot=false; for(int i=0;i<26;i++){ monarbre->suite[i]=NULL; } - pt_arbre=monarbre; + pt_arbre=&monarbre; + printf("%c\n",(*pt_arbre)->val); } i++; ajout_mot(pt_arbre,mot,i); } - +// (*pt_arbre)->finmot=true; +// printf("true\n"); } void charger_arbre(FILE *fp, struct dico **ppt_dico) @@ -80,7 +80,8 @@ void charger_arbre(FILE *fp, struct dico **ppt_dico) ini_dico(*ppt_dico); while (fscanf(fp, "%s", mot)!=EOF){ printf("\nmot:%s\n",mot); - ajout_mot(((*ppt_dico)->alpha[mot[0]-'a']),mot,0); + printf("%c\n",(*ppt_dico)->alpha[mot[0]-'a']->val); + ajout_mot(&((*ppt_dico)->alpha[mot[0]-'a']),mot,0); } return ; } @@ -103,6 +104,7 @@ void free_dico(struct dico *pt_dico){ } for(int i=0;i<26;i++){ free_arbre(pt_dico->alpha[i]); + free(pt_dico->alpha[i]); } free(pt_dico); @@ -112,7 +114,7 @@ void affiche_arbre(struct arbre *arbre){ if(arbre==NULL){ return ; } - printf("%c:xxx\n",arbre->val); + printf("%c\n",arbre->val); for(int i=0;i<26;i++){ affiche_arbre(arbre->suite[i]); } @@ -124,7 +126,7 @@ void affiche_dico(struct dico *dico){ } printf("---------------------------------------\n"); for(int i=0;i<26;i++){ - printf("%d:zzz",i); + printf("%dmot:",i); affiche_arbre(dico->alpha[i]); printf("\n"); } -- libgit2 0.21.2