Bonjour à tous
J'étudie un algorithme qui permet de libérer la mémoire occupée par un arbre, mais j'ai du mal à comprendre dans quel ordre cet algorithme fonctionne. Par exemple voici un arbre binaire:
http://fr.wikipedia.org/wiki/Arbre_b...re_ordonne.svg
Et voici l'algorithme:
Libérer(a: arbre)
Donnée modifiée: l'arbre a que l'on libère
début
si a
Libérer (a -> sag)
Libérer (a -> sad)
libérer a
fin
fin
Au début, je comprends qu'on se déplace de la racine aux nœuds 1 et 2 et qu'on libère 1. Mais ensuite je sais plus trop où en est l'arbre. Est-ce que Libérer (a -> sag) signifie qu'on se déplace du nœud 2 jusqu'à 4 et Libérer (a -> sad) signifie qu'on se déplace du noeud 2 jusqu'à 5 ? Ou bien est-ce que Libérer (a -> sag) signifie qu'on se déplace du noeud 2 jusqu'à 4 et Libérer (a -> sad) signifie qu'on se déplace du nœud 3 jusqu'à 6.
Merci de bien vouloir m'aider à comprendre l'algo par que j'ai le sentiment de m'embrouiller totalement (il faut dire que j'ai un peu de mal avec la récursivité)
-----