Commit 7a7157b041a96871d216801f6f13ecbfddd8013c

Authored by rsimonin
1 parent 41bf8d90

modification creation de arbre

Showing 1 changed file with 17 additions and 15 deletions   Show diff stats
@@ -32,8 +32,7 @@ bool fin_de_mot(struct arbre *arbre) @@ -32,8 +32,7 @@ bool fin_de_mot(struct arbre *arbre)
32 return arbre->finmot; 32 return arbre->finmot;
33 } 33 }
34 34
35 -void cons_dico(struct dico **pt_dico,char val){  
36 - Dico *mondico=malloc(sizeof(struct dico)); 35 +void cons_dico(struct dico **ppt_dico,char val){
37 Arbre *monarbre=malloc(sizeof(struct arbre)); 36 Arbre *monarbre=malloc(sizeof(struct arbre));
38 monarbre->val=val; 37 monarbre->val=val;
39 monarbre->finmot=false; 38 monarbre->finmot=false;
@@ -42,8 +41,7 @@ void cons_dico(struct dico **pt_dico,char val){ @@ -42,8 +41,7 @@ void cons_dico(struct dico **pt_dico,char val){
42 monarbre->suite[i]=NULL; 41 monarbre->suite[i]=NULL;
43 } 42 }
44 43
45 - mondico->alpha[val-'a']=monarbre;  
46 - (*pt_dico)=mondico; 44 + (*ppt_dico)->alpha[val-'a']=monarbre;
47 } 45 }
48 46
49 void ini_dico(struct dico * pt_dico){ 47 void ini_dico(struct dico * pt_dico){
@@ -54,25 +52,27 @@ void ini_dico(struct dico * pt_dico){ @@ -54,25 +52,27 @@ void ini_dico(struct dico * pt_dico){
54 } 52 }
55 53
56 54
57 -void ajout_mot(struct arbre *pt_arbre,char *mot, int i){  
58 -  
59 - while(mot[i]!='\0'){  
60 -  
61 -  
62 - if (pt_arbre==NULL){ 55 +void ajout_mot(struct arbre **pt_arbre,char *mot, int i){
  56 + printf("%d",i);
  57 + printf("%c",mot[i]);
  58 + while(mot[i]!='\0'){
  59 + if (*pt_arbre==NULL){
  60 + printf("creation arbre\n");
63 Arbre *monarbre=malloc(sizeof(struct arbre)); 61 Arbre *monarbre=malloc(sizeof(struct arbre));
64 monarbre->val=mot[i]; 62 monarbre->val=mot[i];
65 monarbre->finmot=false; 63 monarbre->finmot=false;
66 for(int i=0;i<26;i++){ 64 for(int i=0;i<26;i++){
67 monarbre->suite[i]=NULL; 65 monarbre->suite[i]=NULL;
68 } 66 }
69 - pt_arbre=monarbre; 67 + pt_arbre=&monarbre;
  68 + printf("%c\n",(*pt_arbre)->val);
70 69
71 } 70 }
72 i++; 71 i++;
73 ajout_mot(pt_arbre,mot,i); 72 ajout_mot(pt_arbre,mot,i);
74 } 73 }
75 - 74 +// (*pt_arbre)->finmot=true;
  75 +// printf("true\n");
76 } 76 }
77 77
78 void charger_arbre(FILE *fp, struct dico **ppt_dico) 78 void charger_arbre(FILE *fp, struct dico **ppt_dico)
@@ -80,7 +80,8 @@ void charger_arbre(FILE *fp, struct dico **ppt_dico) @@ -80,7 +80,8 @@ void charger_arbre(FILE *fp, struct dico **ppt_dico)
80 ini_dico(*ppt_dico); 80 ini_dico(*ppt_dico);
81 while (fscanf(fp, "%s", mot)!=EOF){ 81 while (fscanf(fp, "%s", mot)!=EOF){
82 printf("\nmot:%s\n",mot); 82 printf("\nmot:%s\n",mot);
83 - ajout_mot(((*ppt_dico)->alpha[mot[0]-'a']),mot,0); 83 + printf("%c\n",(*ppt_dico)->alpha[mot[0]-'a']->val);
  84 + ajout_mot(&((*ppt_dico)->alpha[mot[0]-'a']),mot,0);
84 } 85 }
85 return ; 86 return ;
86 } 87 }
@@ -103,6 +104,7 @@ void free_dico(struct dico *pt_dico){ @@ -103,6 +104,7 @@ void free_dico(struct dico *pt_dico){
103 } 104 }
104 for(int i=0;i<26;i++){ 105 for(int i=0;i<26;i++){
105 free_arbre(pt_dico->alpha[i]); 106 free_arbre(pt_dico->alpha[i]);
  107 + free(pt_dico->alpha[i]);
106 } 108 }
107 free(pt_dico); 109 free(pt_dico);
108 110
@@ -112,7 +114,7 @@ void affiche_arbre(struct arbre *arbre){ @@ -112,7 +114,7 @@ void affiche_arbre(struct arbre *arbre){
112 if(arbre==NULL){ 114 if(arbre==NULL){
113 return ; 115 return ;
114 } 116 }
115 - printf("%c:xxx\n",arbre->val); 117 + printf("%c\n",arbre->val);
116 for(int i=0;i<26;i++){ 118 for(int i=0;i<26;i++){
117 affiche_arbre(arbre->suite[i]); 119 affiche_arbre(arbre->suite[i]);
118 } 120 }
@@ -124,7 +126,7 @@ void affiche_dico(struct dico *dico){ @@ -124,7 +126,7 @@ void affiche_dico(struct dico *dico){
124 } 126 }
125 printf("---------------------------------------\n"); 127 printf("---------------------------------------\n");
126 for(int i=0;i<26;i++){ 128 for(int i=0;i<26;i++){
127 - printf("%d:zzz",i); 129 + printf("%dmot:",i);
128 affiche_arbre(dico->alpha[i]); 130 affiche_arbre(dico->alpha[i]);
129 printf("\n"); 131 printf("\n");
130 } 132 }