TP6: Use K&R coding style
[Algorithmic_C.git] / TP6 / arbres / arbre-n-aire / arbre_n_aire.c
index 16fd0962755d7b8daadaf5614cb226a2f6d08880..fecc499895928027db32545eda2180b58f1b49b7 100644 (file)
@@ -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 */
 }