X-Git-Url: https://git.piment-noir.org/?p=Algorithmic_C.git;a=blobdiff_plain;f=TP6%2Farbres%2Farbre-n-aire%2Farbre_n_aire.c;fp=TP6%2Farbres%2Farbre-n-aire%2Farbre_n_aire.c;h=e8b32016e734782c2f7bddf889c4275cc3a203f8;hp=fecc499895928027db32545eda2180b58f1b49b7;hb=e945a5c813cf17f669a97bcecf6e10d442f9a045;hpb=862ce8c44e8fa6c6cef76437325af9be3f89df64 diff --git a/TP6/arbres/arbre-n-aire/arbre_n_aire.c b/TP6/arbres/arbre-n-aire/arbre_n_aire.c index fecc499..e8b3201 100644 --- a/TP6/arbres/arbre-n-aire/arbre_n_aire.c +++ b/TP6/arbres/arbre-n-aire/arbre_n_aire.c @@ -110,6 +110,20 @@ NOEUD *supprime(NOEUD * p, char *mot, int i) return p; } +/* Destruction des arbres de racine p en recuperant la place occupee (free) par chacun des noeuds */ +NOEUD *detruis_arbre(NOEUD * p) +{ + if (p == NULL) + return p; + else { + p->fils = detruis_arbre(p->fils); + p->frere = detruis_arbre(p->frere); + free(p); + p = NULL; + return p; + } +} + /* Chargement des mots d'un fichier (vu comme un dictionnaire) dans l'arbre **/ NOEUD *charge_dico(char *nom_fichier, int *nb_mots) { @@ -170,7 +184,7 @@ int main(int argc, char *argv[]) affiche_arbre(arbre, 0); if (recherche(arbre, "salut", 0)) printf("mot \"salut\" present\n"); - free(arbre); + detruis_arbre(arbre); /* TODO */ }