Commit 4e00a1e4da2b28c7fcffd1823c38de1141d8d953

Authored by Emilie10
1 parent 5e2228dd

projet

Showing 1 changed file with 80 additions and 35 deletions   Show diff stats
@@ -4,59 +4,76 @@ @@ -4,59 +4,76 @@
4 #define size 50 4 #define size 50
5 #define taille 26 5 #define taille 26
6 6
7 -struct Noeud { char valeur;struct liste * fils; char complet;}; 7 +struct Noeud { char valeur;struct liste * fils; int complet;};
8 8
9 struct liste { struct Noeud * noeud; struct liste * suivant;}; 9 struct liste { struct Noeud * noeud; struct liste * suivant;};
10 10
11 struct dico {struct Noeud tableau[26];int dernier;}; 11 struct dico {struct Noeud tableau[26];int dernier;};
12 12
13 -typedef struct liste * liste; 13 +//typedef struct liste* liste;
14 14
15 typedef struct Noeud Noeud; 15 typedef struct Noeud Noeud;
16 16
17 17
18 -Noeud cons_noeud (char a) 18 +Noeud* cons_noeud (char a)
19 { 19 {
20 Noeud * N = malloc(sizeof(struct Noeud)); 20 Noeud * N = malloc(sizeof(struct Noeud));
21 N->valeur=a; 21 N->valeur=a;
22 N->fils=NULL; 22 N->fils=NULL;
23 N->complet=0; 23 N->complet=0;
24 - return * N; 24 + return N;
25 } 25 }
26 26
27 -void ajout_lettre (Noeud * N , char a) 27 +/*void ajout_lettre (Noeud * N , char a)
28 { 28 {
29 - if(N==NULL)  
30 - cons_noeud(a);  
31 - else  
32 - { ((N->fils)->noeud)->valeur=a;  
33 - ((N->fils)->noeud)->fils=NULL; 29 + if(N==NULL)
  30 + N=cons_noeud(a);
  31 + else
  32 +
  33 + ((N->fils)->noeud)->valeur=a;
  34 + ((N->fils)->noeud)->fils=NULL;
  35 + (N->fils)->suivant=NULL;
34 36
35 - }  
36 -} 37 +
  38 + }*/
37 39
38 //Reprendre cette fonction! 40 //Reprendre cette fonction!
39 void ajout_mot (struct dico * D, char mot[size]) 41 void ajout_mot (struct dico * D, char mot[size])
40 { 42 {
41 Noeud *N; 43 Noeud *N;
42 - for (int j=0;j<D->dernier;j++)  
43 - { if(D->tableau[j].valeur== mot[0])  
44 - {  
45 - *N=D->tableau[j];  
46 - }  
47 - else  
48 - {  
49 - *N=cons_noeud(mot[0]);  
50 - } 44 + int j = 0 ;
  45 + while (j<D->dernier && D->tableau[j].valeur != mot[0])
  46 + j++ ;
  47 + if(j < D->dernier)
  48 + {
  49 + N=&(D->tableau[j]);
  50 + }
  51 + else
  52 + {
  53 + N=cons_noeud(mot[0]);
  54 + }
51 55
52 - for (int i=0; i<size; i++) 56 + for (int i=1; i<size; i++)
53 57
54 - {  
55 - ajout_lettre (N,mot[i]); 58 + {
  59 + if((N->fils->noeud)!=NULL)
  60 + {
  61 + N=N->fils->suivant->noeud;
  62 + N=cons_noeud(mot[i]);
  63 + //ajout_lettre(N,mot[i]);
  64 + }
  65 + else
  66 + {
56 N=N->fils->noeud; 67 N=N->fils->noeud;
  68 + N=cons_noeud(mot[i]);
  69 + //ajout_lettre (N,mot[i]);
  70 + // N=N->fils->noeud;
  71 +
57 } 72 }
58 - N->complet=1;  
59 - } 73 +
  74 + }
  75 + N->complet=1;
  76 +
60 } 77 }
61 78
62 79
@@ -74,7 +91,7 @@ void cons_dico(FILE* fp, struct dico* D) @@ -74,7 +91,7 @@ void cons_dico(FILE* fp, struct dico* D)
74 int rech_mot(struct dico D,char mot [size]) 91 int rech_mot(struct dico D,char mot [size])
75 { 92 {
76 Noeud N; 93 Noeud N;
77 - D.dernier=-1; 94 + int nbre;
78 for(int i=0;i<D.dernier;i++) 95 for(int i=0;i<D.dernier;i++)
79 { 96 {
80 if(D.tableau[i].valeur==mot[0]) 97 if(D.tableau[i].valeur==mot[0])
@@ -83,18 +100,46 @@ int rech_mot(struct dico D,char mot [size]) @@ -83,18 +100,46 @@ int rech_mot(struct dico D,char mot [size])
83 for(int j=0;j<size;j++) 100 for(int j=0;j<size;j++)
84 { 101 {
85 if(N.valeur==mot[j]) 102 if(N.valeur==mot[j])
86 - *N=N->fils->noeud; 103 + N=*(N.fils)->noeud;
  104 + else
  105 + nbre=0;
87 } 106 }
88 - return 1;  
89 -  
90 - if(N.complet=1)  
91 - return 1; 107 + if(N.complet==1)
  108 + nbre=1;
92 } 109 }
93 else 110 else
94 - return 0; 111 + nbre= 0;
95 } 112 }
  113 + return nbre;
96 } 114 }
97 115
98 116
99 -  
100 - 117 +void correction_texte(char filename[size], struct dico D)
  118 +{
  119 + FILE *fp=fopen(filename, "r");
  120 + char mot[size];
  121 + int x;
  122 + if(fp==NULL)
  123 + return;
  124 + else
  125 + {
  126 + while(fscanf(fp,"%s",mot)==1)
  127 + {
  128 + x=rech_mot(D,mot);
  129 + if(x==0)
  130 + {
  131 + printf("il y a une erreur!\n");
  132 + printf("%s",mot);
  133 + }
  134 + }
  135 + }
  136 +
  137 +
  138 +}
  139 +int main(){
  140 + struct dico d;
  141 + ajout_mot(&d,"emilie");
  142 + printf( "%c",d.tableau[0].valeur);
  143 + return 0;
  144 +}
  145 +