#include #include #include typedef char element; typedef struct arbre { element lettre; struct arbre * horizontal; struct arbre * vertical; } arbre_s; arbre_s ** recherche( arbre_s ** tete, char ** courmot); void insere_mot(arbre_s ** tete, char * mot) { char * a; arbre_s ** pere, * cour; pere = recherche (tete, &mot); if(*mot != '\0') { cour = *pere; while( *mot != '\0') { arbre_s * arbretemp; arbretemp = (arbre_s *) malloc (sizeof(arbre_s) ); if(arbretemp ) { arbretemp -> lettre = *mot; arbretemp -> vertical = NULL; arbretemp -> horizontal = cour; printf("%c", *mot); * pere = arbretemp; * pere = arbretemp -> vertical; cour = * pere; } mot++; } } printf("coucou"); scanf("%c", &a); (*pere) -> lettre = toupper( (*pere) -> lettre); } arbre_s ** recherche( arbre_s ** tete, char ** courmot) { int i = 0; arbre_s * cour, ** prec; int fin = 0; while (!fin ) { prec = tete; cour = * prec; while( cour != NULL && tolower( cour -> lettre) < *courmot ) { prec = &cour -> horizontal; cour = * prec; } if ( cour != NULL && tolower(cour -> lettre) == *courmot ) { courmot++; if( *courmot == '\0') { fin = 1; } else { prec = &cour -> vertical; cour = * prec; } } else { fin = 1; } } return prec; } void lecture_fichier(arbre_s ** tete, char * nomfichier) { char mot[26]; FILE * fic = NULL; char * p_mot; if (fic = fopen(nomfichier, "r")) { fseek(fic, SEEK_SET, SEEK_END); if (ftell(fic) > 0) { rewind(fic); while (fgets(p_mot, 27, fic)!= NULL) { insere_mot(tete, p_mot); } } fclose(fic); } else { printf("erreur a l'ouverture du fichier"); exit(1); } } int main() { char * nomfichier = "mots.txt"; arbre_s * tete = NULL; tete = (arbre_s *) malloc (sizeof(arbre_s)); lecture_fichier(&tete, nomfichier); return 1; }