Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Algorithmes et
Structures de Données
Chapitre 9 – Les arbres
Capocchi Laurent
capocchi@univ-corse.fr
http://spe.univ-corse.fr/capocchiweb
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Objectifs
Objectifs du cours
Présentation et définition des arbres
Terminologie – Utilisation
Les arbres binaires
TAD, algorithmes de service
Implémentation
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Structure récursive non-linéaire
Les arbres ?
Arbre : ensemble de points : les nœuds, connectés par
un ensemble de lignes : les arcs
Arbre : Très utilisé en informatique quand l’information
possède une structure hiérarchique ou imbriquée
arcs
nœuds
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Structure récursive non-linéaire
Les arbres ?
Collection hiérarchique d'objets
Structure homogène dont chaque élément (noeud)
contient de l'information et plusieurs liens (pointeurs)
vers des éléments du même type
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Structure récursive non-linéaire
Racine
Nœud ud
Nœud
Nœud
sous-arbre
arc
NœudNœud
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Structure récursive non-linéaire
On peut définir récursivement un arbre
Il existe un nœud distingué appelé « racine »
Les autres nœuds sont partitionnés en un nombre fini de
sous-ensembles disjoints constituant eux-mêmes des
arbres : sous-arbres
Un arbre est un ensemble de nœuds organisés de façon
hiérarchique à partir d'un nœud particulier appelé racine
Si en se déplaçant à partir d’un nœud père, vers son
père, etc. , et que l'on arrive à la racine de l’arbre:
l'arbre est dit connexe
Une liste est un cas particulier d’arbre :
arbre dégénéré
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Structure récursive non-linéaire
Il s’agit de hiérarchies strictes :
Il n’y a pas de boucles
Il n’y a pas de partage des descendants
a
bc
d
A
a
a e f
g
b c
B
a
a e
g
b c
C
e
g
g
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Implémentations
Représentation séquentielle : par tableaux
Représentation chaînée : par pointeurs 1
3 4
10
2
9
5 6 7 8
1
2. . .
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres
Une des structures les plus importantes et des plus
spécifiques de l’informatique
Organisation des fichiers dans les SE
Représentation des programmes traités par un
ordinateur
Représentation d’une table des matières
Représentation d’un dictionnaire
Représentation d’un arbre généalogique
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Utilisation des arbres
1/ Représentation et manipulation d’expressions
arithmétiques : Arbres Syntaxiques
Évaluation
Simplification
Dérivation
(a+b) / (c*(a+b) + (a*b))
/
a b
c + a b
a b
++
* *
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Utilisation des arbres
2/ Représentation d'un dictionnaire: Arbres
lexicographiques
Ensemble de mots représentés avec un minimum de
lettres
{alors, faire, fin, sinon}
Temps de calcul est proportionnel à la longueur du mot et
est indépendant de la taille du dictionnaire
alo r s
si n on
f
in
a i r e
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Utilisation des arbres
3/ Modélisaion des situtions liées à la généalogie
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Utilisation des arbres
4/ Classements
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Utilisation des arbres
5/ Grammaire
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Terminologie
Arbre : Une structure d'arbre d'un type de base T est :
soit la structure vide
soit un nœud de type T associé à un nombre fini de structures
d'arbre disjointes du type de base T appelées sous-arbres
Taille d’un arbre : nombre de ses nœuds
Un nœud est caractérisé par :
Une étiquette : valeur associée au nœud
Ses fils ou descendants immédiats
Son degré : nombre de ses fils. Le degré d'un arbre est le
plus grand degré de ses nœuds
Nœuds particuliers
Racine : n’est le fils d’aucun nœud
Feuille : ne possède pas de fils
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Terminologie
1
3 4
10
2
9
5 6 7 8
racine
nœud interne
feuille
branche
chemin
1 père de 2,3,4
2,3,4 enfants de 1
3,4 frères de 2
1,3 ancêtres de 7
9,10 descendants de 7
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Terminologie
Donnez le degré et la taille de ces arbres
Degré = 3
Taille = 16
Degré = 2
Taille = 10
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Terminologie
A arbre et x nœud de A
niveauA(x) = distance(nombre d’arcs) de x à la racine
niveauA(x) = 0 si x = racine(A)
1 + niveau (parent (x) ) sinon
1
3 4
10
2
9
5 6 7 8
0
1
2
3
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Terminologie
A arbre et x nœud de A
hA(x) = distance de x à son plus lointain descendant qui
est un nœud externe (feuille)
hA(x) = 0 si x nœud externe
1 + max { hA(e) | e enfant de x } sinon
h(A) = hA(racine(A))
hA (8) = 0
hA (7) = 1
hA (3) = 2
h(A) = hA (1) = 3
1
3 4
10
2
9
5 6 7 8
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Les arbres: Sous-arbres
A arbre et x nœud de A
ArbreA(x) = sous-arbre de A qui a racine x
hA(x) = h(ArbreA(x) )
A = ArbreA( racine(A) )
1
3 4
10
2
9
5 6 7 8
ArbreA (2)
ArbreA (7)
ArbreA (8)
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !