X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP6%2Farbres%2Farbre-n-aire%2Farbre_n_aire.c;h=fecc499895928027db32545eda2180b58f1b49b7;hb=760a83108ff8caa7036c81d21d4dc4581de98860;hp=16fd0962755d7b8daadaf5614cb226a2f6d08880;hpb=e06ddf2d662693efef1a0060797f169947ff3d9d;p=Algorithmic_C.git diff --git a/TP6/arbres/arbre-n-aire/arbre_n_aire.c b/TP6/arbres/arbre-n-aire/arbre_n_aire.c index 16fd096..fecc499 100644 --- a/TP6/arbres/arbre-n-aire/arbre_n_aire.c +++ b/TP6/arbres/arbre-n-aire/arbre_n_aire.c @@ -59,15 +59,15 @@ NOEUD *insere_fin(char *mot, int i) NOEUD *insere(NOEUD * p, char *mot, int i) { /* i est l'indice de la lettre courante dans le mot */ - if (p == NULL) - return p = insere_fin(mot, i); - if (mot[i] == p->lettre) { - - return insere(p->fils, mot, i + 1); + if (p == NULL) { + return insere_fin(mot, i); } - //return insere (p->frere, mot, i); if (mot[i] > p->lettre) { return insere(p->frere, mot, i); + } else if (mot[i] == p->lettre) { + return insere(p->fils, mot, i + 1); + } else { + return insere_fin(mot, i); } } @@ -91,6 +91,7 @@ void affiche_arbre(NOEUD * p, int prof) /* prof est utilise pour decaller l'affichage avec des espaces (selon le niveau dans l'arbre) */ { int i; + if (p) { affiche_arbre(p->frere, prof); for (i = 0; i < prof; i++) @@ -117,6 +118,7 @@ NOEUD *charge_dico(char *nom_fichier, int *nb_mots) char mot[N]; int i; p = NULL; + fp = fopen(nom_fichier, "rt"); if (fp == NULL) exit(-1); @@ -141,6 +143,7 @@ void sauve_dico(NOEUD * p, char *nom_fichier, int nb_mots) { FILE *fp; char mot[N]; + fp = fopen(nom_fichier, "wt"); if (fp == NULL) exit(-1); @@ -155,6 +158,7 @@ int main(int argc, char *argv[]) char mot[N]; int nb_mots = 0; NOEUD *arbre = NULL; + //printf ("saisir un mot : "); //gets (mot); //printf ("\ninsertion de %s\n", mot); @@ -166,6 +170,7 @@ int main(int argc, char *argv[]) affiche_arbre(arbre, 0); if (recherche(arbre, "salut", 0)) printf("mot \"salut\" present\n"); + free(arbre); /* TODO */ }