Vous êtes sur la page 1sur 14

Cours Algorithmique, 2ème partie AS IUT

Arbres n-aires

Anne Vilnat
http://www.limsi.fr/Individu/anne/coursAlgo
Arbre n-aire

Définition :

Listes : un “successeur”
Arbres binaires : deux “successeurs” ordonnés
Arbres n-aires : n successeurs
fils1 ,fils2 , ..., filsn
notion de frère
descendance immédiate : l’ensemble des successeurs immédiats
d’un sommet
Exemple d’arbre n − aire
Représentation

Deux cas possibles

Nombre de successeurs borné : on sait à l’avance que chaque


sommet aura N successeurs au plus
Nombre de successeurs arbitraire : on ne peut pas prévoir à
l’avance le nombre de successeurs

Sous forme de liste :

tête : la racine
reste : liste de sous-arbres

Exemple :
(A (B (F) (G) ) (C) (D) (E (H) (I) (J)))
Nombre de successeurs bornés

Principe

On prévoit N fils pour chaque sommets


Définition récursive : tableau d’arbres n − aires
Par exemple par des tableaux d’arbres...
Problème : beaucoup de cases éventuellement inutiles...
Algorithme de recherche

fonction chercher(val, unA) retourne booléen


paramètres val : entier (E)
unA : Arbre (E)
début
si unA.vide()alors retourne Faux
si unA.info()= val alors retourne vrai
pour i:= à N faire
tmp := chercher(val, unA.tab[i])
si tmp alors retourne tmp
retourne faux
fin
Nombre de successeurs non borné

Représentations

Listes...
Méthode fils aı̂né, frère
Algorithme de recherche : parcours en largeur

fonction chercher(val, unA) retourne booléen


paramètres val : entier (E)
unA : Arbre (E)
début
si unA.vide()alors retourne Faux
si unA.info()= val alors retourne vrai
tmp := chercher(val, unA.frere())
si tmp alors retourne tmp
retourne chercher (val, unA.filsA())
fin
Algorithme de recherche : parcours en profondeur

fonction chercher(val, unA) retourne booléen


paramètres val : entier (E)
unA : Arbre (E)
début
si unA.vide()alors retourne Faux
si unA.info()= val alors retourne vrai
pour i:= à N faire
tmp := chercher(val, unA.filsA())
si tmp alors retourne tmp
retourne chercher (val, unA.frere())
fin
Représentation fils aı̂né-frère

Quelques propriétés

Tout sommet hormis la racine est un fils aı̂né ou un frère


Si pas de fils aı̂né : pas de descendant → feuille
Si pas de frère : dernier fils de son père
Tout sommet hormis la racine a un père unique
Si pas de père → racine
Formellement, un arbre n − aire...
... est un arbre binaire
Définition d’une Forêt

Définition :
Une forêt est un ensemble d’arbres quelconques (pas toujours
binaires).
On peut la transformer en arbre binaire ainsi :
la racine du premier arbre devient la racine de l’arbre binaire
pour tout lien X-Y, si Y est le premier fils de X, alors Y
devient le fils gauche de X
pour tout autre lien X-Y, si Z est le dernier fils de X, alors Z
devient le frère droit de Z
Exemple de forêts

devient : ???

Vous aimerez peut-être aussi