05 SD Arbres
05 SD Arbres
05 SD Arbres
DONNEES
Semestre 4 2021-2022
Département d’Informatique Pr. BELAQZIZ Salwa
Structures de Données
Plan
1
Les structures
2
La récursivité
3
Les listes chaînées
4
Les Piles et les Files
5
Les Arbres
Pr. Salwa BELAQZIZ 2
Introduction
5
LES ARBRES
Linéaires :
o Tableaux
o Listes chaînées
o Piles
o Files
Non linéaires :
o Arborescentes: Arbres
o Relationnelles: Graphes
Linéaires :
o Tableaux
o Listes chaînées
o Piles
o Files
Non linéaires :
o Arborescentes: Arbres
o Relationnelles: Graphes
Pr. Salwa BELAQZIZ 4
Définitions
5
LES ARBRES
0 1 2 3
2 4 9 7
Noeud 1
2 3 4
5 6 7 8 9
10 11 12
Noeud 1
Racine (root)
2 3 4
5 6 7 8 9
10 11 12
Contient 0 à N noeuds
Un arbre
Les nœuds d’un arbre sont reliés entre eux par des arcs (edges)
La série des pères partant d’un nœud vers la racine est toujours
unique.
Parents 1
2 3 4
5 6 7 8 9
10 11 12
Fils 1
2 3 4
5 6 7 8 9
10 11 12
Arcs 1
2 3 4
5 6 7 8 9
10 11 12
Remarque :
Dans un arbre, tout nœud est :
soit une feuille;
soit un nœud intérieur.
mais pas les deux.
Feuilles 1
2 3 4
5 6 7 8 9
10 11 12
Nœuds intérieurs 1
2 3 4
5 6 7 8 9
11 12
Les nœuds ayant le même père sont appelés des frères (siblings).
Frères 1
2 3 4
5 6 7 8 9
10 11 12
Ancêtres 1
2 3 4
5 6 7 8 9
10 11 12
Descendants 1
2 3 4
5 6 7 8 9
10 11 12
Sous-arbre 1
2 3 4
5 6 7 8 9
10 11 12
Le degré d’un nœud n dans un arbre est égal au nombre de ses fils
(successeurs).
Une branche d’un arbre est un chemin qui relie la racine à une
feuille de cet arbre.
Une branche :
(A, B, E, I, K)
B C D
Le degré de l’arbre : 3
E F G H
I Nœud A B C D E F G H I J K
Degré 3 2 0 2 1 0 0 0 2 0 0
2 3 4
5 6 7 8 9
10 Profondeur = 3 11 12
Niveau 1
2 3 4
Niveau 2
5 6 7 8 9
Niveau 3
10 Profondeur = 3 11 12
Hauteur = 2
2 3 4
5 6 7 8 9
10 11 12
ARBRES BINAIRES
Un arbre binaire (binary tree) est un arbre dans lequel chaque nœud
peut avoir au plus deux fils : un fils gauche (left child), et/ou un fils
droit (right child).
Remarque :
Le vocabulaire pour les arbres généraux s’applique aussi aux arbres binaires
A Père
B D
Fils gauche Fils droit
39
LES ARBRES BINAIRES
5
LES ARBRES
Exemple d’un arbre binaire
2 4
5 7 8 9
10
11 12
A A A A A
B B
B B C
B
C
C
C
C
T1 T2
2 4
5 7 8 9
10 11
12 13
44
LES ARBRES BINAIRES
Complet ou presque complet
(1) Tous les niveaux sont remplis à l'exception du dernier
(2) Les feuilles du dernier niveau sont alignées à gauche
Niveau 0
1
Niveau 1
2 4
Niveau 2
5 7 8 9
Niveau 3
10 11 10 11 12
90
84 70
72 60 68 57
37 25 50
46
LES ARBRES BINAIRES
Parfait
Tous les niveaux sont remplis
1
Niveau 0
2 4
Niveau 1
5 7 8 9
Niveau 2
10 11 10 11 12 11 11
12
Niveau 3
Nombre de noeuds par niveau = 2N (N: le numéro du niveau)
Nombre de noeuds dans un arbre binaire parfait = 2h+1 - 1 (h: hauteur de l'arbre)
47
Transformation en arbre binaire
5
LES ARBRES
Règles de transformation
Il y a deux concepts à utiliser :
Le fils d’un nœud (nœud vers lequel il pointe)
Le frère d’un nœud (le nœud du même niveau que lui)
Exemple : B C D
fils de A: B,C et D
1er fils de A : B E F G H
frère le plus proche de B est C
B C D
E F G H
Transformation en
arbre binaire
A
B C D
E F G H
50
Pr. Salwa BELAQZIZ
EXERCICE 1
5
LES ARBRES
Exercice 1 :
On considère l’arbre suivant :
Exercice 1 :
Transformation de l’arbre en un arbre binaire en respectant les règles
52
5
LES ARBRES
Implémentation
des Arbres Binaires
Implémentation contigüe :
B D
E F G H
A A
B C
B C
D E
D E
creer_feuille(val)
node
arbre_g arbre_d
Opérations :
Opérations :
G D
Opérations :
Opérations :
Opérations :
2 4
8 3
Remarque :
Autres Opérations :
Pour les arbres ordonnés surtout :
Recherche d'un élément;
Ajout d'un élément;
Suppression d'un nœud;
...
Il faut conserver l'ordre et le contexte
ARBRES BINAIRES
DE RECHERCHE
44
70
65 80
50 69 78 92
23 62 68
55
La forme finale dépend des valeurs et de 34 58
l'ordre d'entrée de ces valeurs
20 49
10 25 38 50
22
Opérations :
Opérations :
La recherche d’un élément dans un ABR est plus rapide que celle faite
dans les arbres non ordonnées, et cela grâce à la dichotomie (parcours
de recherche est effectué soit à droite soit à gauche d’un nœud).
Recherche Dichotomique :
racine
recherche(38,racine);
55
34 58
20 49
10 25 38 50
22
Recherche Dichotomique :
r
recherche(38,racine);
r 55
34 58
r
20 49
r
10 25 38 50
22
Recherche Dichotomique :
Opérations :
Exemple 1
Insérer l’élément « 7 » dans cet arbre :
10 10
8 15 8 15
6 9 11 16 6 9 11 16
Exemple racine
Insérer l’élément « 24 » dans cet arbre :
racine=ajout(24,racine); 55
34 58
20 49
10 25 38 50
22
Exemple r
Insérer l’élément « 24 » dans cet arbre :
racine=ajout(24,racine); r 55
34 58
Recherche récursive de la r
place pour accrocher la feuille 20 49
r
10 25 38 50
22
24
Exemple r
Insérer l’élément « 24 » dans cet arbre :
racine=ajout(24,racine); r 55
34 58
Accrocher la feuille r
20 49
r
10 25 38 50
22
103
Pr. Salwa BELAQZIZ
Arbres Binaires de Recherche
5
LES ARBRES
Opérations :
Exemple :
1- Suppression de l’élément « 7 »
10 10
8 15 8 15
6 9 11 16 6 9 11 16
Exemple :
2- Suppression de l’élément « 6 »
10 10
8 15
8 15
6 9 11 16
7 9 11 16
3- Supprimer l’élément « 8 »; 6 9 11 16
deux solutions :
7
10
10
ou 9 15
7 15
6 11 16
6 9 11 16