Professional Documents
Culture Documents
20XX-XX Cours Chapitre4 Arbres Powerpoint SDD
20XX-XX Cours Chapitre4 Arbres Powerpoint SDD
Arbres
Arbre binaire (AB)
Représentation SDD d’un AB
Arbres binaires de recherche (ABR)
…
Exemples
2
Naturels
Organigramme d’une entreprise
Résultat d’un tournoi
Informatiques 3
Système de fichiers
Langages et compilation 2 1
Arbre de dérivation
Arbre d’analyse
Traitements récursifs 3 4 5
…
Utilisation
3
Arbre
Arbre
graphe connexe acyclique
Arbre binaire
arbre dont le degré des nœuds est au plus 3
Ce sont des graphes non orientés, sans racine
Arbre binaire enraciné
On précise arbitrairement un nœud en tant que racine
Parmi les nœuds de degré au plus deux
L’orientation (relation parent-enfant) est alors induite
Définition Arbre binaire(SDD)
5
Arbre vide
N’a aucun nœud = est sans racine
Arbre entier
Dont tous les nœuds sont soit interne, soit feuille
Arbre complet
Arbre entier
Pas de feuilles dont les profondeurs diffèrent > 1
Arbre parfait
Arbre entier
Pas de feuilles dont les profondeurs diffèrent
Exo – Adressage dans un AB
11
Indexation
Après représentation, on observe qu’étant donné un nœud d’index i
Son fils gauche a pour index 2i
Son fils droit a pour index 2i + 1
Démonstration
Utiliser les dénombrements précédents
Autre utilisation
Etant donné l’index i d’un nœud,
l’index de son parent est la partie entière de la division euclidienne
de i par 2
Ce principe sera utilisé pour le tri par tas
Interprétation d’un tableau en termes d’arbre binaire
Corrigé – Adressage dans un AB
14
En binaire
On passe de l’écriture binaire de l’index du parent à celle des enfants en ajoutant un
chiffre (digit) à droite
Un 0 pour le fils gauche
Un 1 pour le fils droit
Application
L’écriture binaire de l’index d’un nœud est une feuille de route
Le premier chiffre, 1, correspond à la racine
A chaque chiffre (de gauche à droite), correspond un pas d’itération
Si 1, faire un pas à gauche
Si 0, faire un pas à droite
Arbre n-aire
Adapter les raisonnements. Conseil, travailler en base n
Vivement encouragé comme travail personnel
Réservé aux élèves les plus sérieux
15 IV. Arbres
Arbre binaire (AB)
Représentation SDD d’un AB
Algorithmes de parcours d’un AB
Arbre binaire de recherche (ABR)
…
Définition d’un nœud d’arbre
16
sag
A sad
Assembler un arbre
18
A A B
NON ! NON !
Assembler un arbre
19
A
B C
A
OUI !
Définition d’un nœud d’AB
20
Problème
Comment parcourir un AB, i.e.
Comment visiter chaque nœud une fois et une seule?
Deux grand types de parcours
En largeur
Niveau par niveau
Naturellement itératif
En profondeur
Branche par branche
Naturellement récursif
Parcours en largeur(ex. wikipedia)
25
2 3
4 5 6
7 8 9
1 2 3 4 5 6 7 8 9
Parcours en largeur (itératif)
26
Parcours en largeur
27
1 9 8 7 6 5 4 3 2 1
2 3
4 5 6
7 8 9
1 2 3 4 5 6 7 8 9
Parcours en largeur
28
Implémentation récursive ?
Sans lien direct entre frères, ça parait difficile !
Pour parcourir de droite à gauche ?
Deux instructions à permuter !
Pour généraliser à un arbre n-aire ?
A chaque itération de la boucle
Défiler le nœud courant
Enfiler tous ses successeurs directs
Parcours en profondeur
29
2 3
4 5 6
7 8 9
1 2 4 5 7 8 3 6 9
Parcours en profondeur in-ordre
31
2 3
4 5 6
7 8 9
4 2 7 5 8 1 3 9 6
Parcours en profondeur post-ordre
32
2 3
4 5 6
7 8 9
4 7 8 5 2 9 6 3 1
Parcours en profondeur (récursif)
33
Parcours en profondeur (itératif)
34
Parcours en profondeur
35
2 3
74
4 5 6
852
6931
7 8 9
1 2 4 5 7 8 3 6 9
Quelques exemples d’algorithmes
36
L’idée
1. Descendre récursivement dans toutes les branches
Le nœud cible, et seulement lui, initie une liste (la queue)
2. En remontant, compléter par ajout préfixe (tête)
Ssi l’un des deux fils n’a pas retourné une liste nulle
Construire la branche
42
Créer un arbre parfait
43
Arbre Binaire de Recherche (ABR)
44
30
15 50
10 35 60
1 11
Non ABR
46
30
15 50
10 35 60
1 16
Rechercher un élément
47
Simple dichotomie
Plus besoin d’algorithme récursif et couteux
Une boucle d’itération suffit
Illustration : on recherche 11
48
30
1111<<3015? ? VV
GG
11 < 10 ? VD
15 50
10 35 60
1 11
L’algorithme (version récursive)
49
55
Arbre équilibré
56
Principe
Arbre capable de maintenir un équilibre partiel
Adelson-Velskii et Landis (auteurs, 1962)
Spécification
Structure de maillon d’AB
Ajout d’un champ pour mémoriser
Le facteur d’équilibrage
= état d’équilibre
i.e. valeur locale de hsad(a) – hsag(a)
Algorithmes d’ajout / suppression
Objectif : maintenir balance, en tout nœud
dans le domaine {-1, 0, 1}
Rotation Gauche-Gauche (GG)
60
8
9 GD
Ajout
DD !! de
Ajout
GG de 51210
9
8
2 10
9
2
1 8
5 10
1 5