05 SD Arbres

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 109

LES STRUCTURES DE

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

Les structures de données peuvent être :

 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 3


Introduction
5
LES ARBRES

Les structures de données peuvent être :

 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

Pr. Salwa BELAQZIZ 5


Définitions
5
LES ARBRES

 Un arbre est un ensemble d’éléments, appelés nœuds


(nodes) ou sommets (vertex), organisés d’une manière
hiérarchique à partir d’un nœud très particulier, appelé
racine (root) de l’arbre.

 En informatique, les arbres sont souvent dessinés avec la


racine en haut

Pr. Salwa BELAQZIZ 6


Définitions
5
LES ARBRES

Noeud 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 7


Définitions
5
LES ARBRES

Noeud 1

Racine (root)
2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 8


Définitions
5
LES ARBRES

Contient 0 à N noeuds
Un arbre

Déplacement entre les noeuds se fait dans un seul sens

Chaque noeud peut avoir de 0 à N successeurs

Chaque noeud à 0 ou 1 prédécesseur

Pr. Salwa BELAQZIZ 9


Définitions
5
LES ARBRES

 La structure d’arbre est fondamentale en informatique :


 Les fichiers dans OS sont organisés sous forme d’arbre.
 Un compilateur représente un programme source sous forme d’un arbre :
l’arbre de syntaxe (sytnax tree).

La structure d’arbre est utilisée dans de très nombreuses applications


informatiques :
 Arbres généalogiques;
 Arbres pour représenter des compétitions sportives (tournois);
 Arbres pour les organigrammes d’entreprises;
 Informations hiérarchiques (Table des matières d’un livre);
 Fichiers HTML, XML;
 Jeux;
 …etc
Pr. Salwa BELAQZIZ 10
Définitions
5
LES ARBRES

Un arbre représentant un système de fichier

Pr. Salwa BELAQZIZ 11


Définitions
5
LES ARBRES

Un arbre représentant un programme source par un compilateur

Pr. Salwa BELAQZIZ 12


Définitions
5
LES ARBRES

Une expression mathématique représentée sous


d’un arbre par un compilateur
Pr. Salwa BELAQZIZ 13
Définitions
5
LES ARBRES

Un arbre représentant un fichier XML

Pr. Salwa BELAQZIZ 14


Définitions
5
LES ARBRES

Un arbre représentant un organigramme d’entreprise

Pr. Salwa BELAQZIZ 15


Définitions
5
LES ARBRES

Un arbre représentant un jeu de labyrinthe

Pr. Salwa BELAQZIZ 16


Définitions et Vocabulaires
5
LES ARBRES

 Les nœuds d’un arbre sont reliés entre eux par des arcs (edges)

 Un nœud n autre que la racine, peut être relié par un arc à un


autre nœud m (unique). On dis que m est le père (parent/father)
de n.

 Si m est le père du nœud n, alors on dit aussi que n est un fils


(child) de m.

Pr. Salwa BELAQZIZ 17


Définitions et Vocabulaires
5
LES ARBRES

 Un nœud père peut avoir 0, 1 ou plusieurs fils.

 Cependant, tout nœud (sauf la racine) a exactement un père.

 La série des pères partant d’un nœud vers la racine est toujours
unique.

Pr. Salwa BELAQZIZ 18


Définitions
5
LES ARBRES

Parents 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 19


Définitions
5
LES ARBRES

Fils 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 20


Définitions
5
LES ARBRES
Nombre d’arcs = Nombre de nœuds - 1

Arcs 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 21


Définitions et Vocabulaires
5
LES ARBRES
Feuilles et nœuds intérieurs
 Une feuille (leaf) est un nœud d’un arbre qui n’a pas de fils.

 Un nœud intérieur (interior node) est un nœud qui a au moins un


fils.

Remarque :
Dans un arbre, tout nœud est :
 soit une feuille;
 soit un nœud intérieur.
 mais pas les deux.

Pr. Salwa BELAQZIZ 22


Définitions
5
LES ARBRES

Feuilles 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 23


Définitions
5
LES ARBRES

Nœuds intérieurs 1

2 3 4

5 6 7 8 9

11 12

Pr. Salwa BELAQZIZ 24


Définitions et Vocabulaires
5
LES ARBRES
Ancêtres et descendants et frères
 Les ancêtres d’un nœud sont formé par le nœud lui-même, de son
père, puis le père de son père et ainsi de suite jusqu’à la racine.

 Les descendants d’un nœud sont formés par ce nœud lui-même, de


ses fils, puis les fils de ses fils et ainsi de suite.

 Les nœuds ayant le même père sont appelés des frères (siblings).

Pr. Salwa BELAQZIZ 25


Définitions
5
LES ARBRES

Frères 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 26


Définitions
5
LES ARBRES

Ancêtres 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 27


Définitions
5
LES ARBRES

Descendants 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 28


Définitions et Vocabulaires
5
LES ARBRES
Sous arbre

Dans un arbre, un nœud n accompagné de tous ses descendants


propres (s’il en possède) est appelé un sous-arbre (subtree) de
racine n.

Pr. Salwa BELAQZIZ 29


Définitions
5
LES ARBRES

Sous-arbre 1

2 3 4

5 6 7 8 9

10 11 12

Pr. Salwa BELAQZIZ 30


Définitions et Vocabulaires
5
LES ARBRES
Taille d’un arbre, degré d’un nœud,
branche d’un arbre
 La taille d’un arbre est égale au nombre de ses nœuds.

 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.

Propriété : Un arbre a autant de branches que de feuilles.

Pr. Salwa BELAQZIZ 31


Définitions et Vocabulaires
5
LES ARBRES
A
Taille = 11

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

J K Pr. Salwa BELAQZIZ 32


Définitions
5
LES ARBRES

La profondeur d’un nœud

La profondeur d'un nœud (appelé aussi niveau d'un nœud) est le


nombre d’arcs que je dois parcourir de la racine pour arriver à ce
nœud.

Pr. Salwa BELAQZIZ 33


Définitions
5
LES ARBRES

2 3 4

5 6 7 8 9

10 Profondeur = 3 11 12

Pr. Salwa BELAQZIZ 34


Définitions
5
LES ARBRES
Niveau 0
1

Niveau 1
2 3 4

Niveau 2
5 6 7 8 9

Niveau 3
10 Profondeur = 3 11 12

Pr. Salwa BELAQZIZ 35


Définitions
5
LES ARBRES

La hauteur d’un noeud

La hauteur d'un noeud est la plus grande profondeur d'une


feuille de la sous-arbre dont il est racine

Pr. Salwa BELAQZIZ 36


Définitions
5
LES ARBRES
Hauteur = 3
1

Hauteur = 2

2 3 4

5 6 7 8 9

10 11 12

Hauteur des feuilles = 0

Pr. Salwa BELAQZIZ 37


5
LES ARBRES

ARBRES BINAIRES

Pr. Salwa BELAQZIZ 38


Définition
5
LES ARBRES

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

Pr. Salwa BELAQZIZ 40


Arbres binaires
5
LES ARBRES

A A A A A

B B
B B C
B

C
C
C
C

5 arbres binaires avec 3 noeuds

Pr. Salwa BELAQZIZ 41


Définition (récursive)
5
LES ARBRES

Un arbre binaire est un arbre défini récursivement comme suit :

 La base : l’arbre vide est un arbre binaire.

 La récurrence: si r un nouveau nœud et si T1 et T2 sont deux arbres


binaires, alors on peut créer un nouvel arbre binaire tel que :
 r est la racine;
 T1 est le sous-arbre gauche;
 T2 est le sous-arbre droit.

Pr. Salwa BELAQZIZ 42


Définitions et Vocabulaires
5
LES ARBRES
r

T1 T2

Définition récursive d’un arbre binaire

Pr. Salwa BELAQZIZ 43


LES ARBRES BINAIRES
Strict ou localement complet
Tous les nœuds possèdent 0 ou 2 fils

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

Nombre de noeuds par niveau = 2N (N: le numéro du niveau) 45


LES ARBRES BINAIRES
Complet ou presque complet
Arbre de Tas (heap)
Utilisée pour représenter des files de priorité

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

Transformation d’un arbre n-aire en un arbre binaire


Dans un arbre n-aire (de degré qcq), les nœuds peuvent avoir des
nombres de successeurs variables, c’est pourquoi, il est souvent utile
de le transformer en un arbre binaire équivalent.

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)

Pr. Salwa BELAQZIZ 48


Transformation en arbre binaire
5
LES ARBRES
A

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

Pour transformer cet arbre n-aire en un arbre binaire on procède


comme suit :
Chaque nœud va pointer : vers son premier fils et vers son frère le
plus proche.

Pr. Salwa BELAQZIZ 49


Transformation en arbre binaire
5
LES ARBRES A

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 :

Donner la transformation de cet arbre en un arbre binaire

Pr. Salwa BELAQZIZ 51


EXERCICE 1 - Correction
5
LES ARBRES

Exercice 1 :
Transformation de l’arbre en un arbre binaire en respectant les règles

52
5
LES ARBRES

Implémentation
des Arbres Binaires

Pr. Salwa BELAQZIZ 53


Implémentation contigüe
5
LES ARBRES

Implémentation contigüe :

 On utilise un tableau d’enregistrements composés de trois champs:


« info » : stocke la valeur du nœud.
« left » : stocke l’indice du fils gauche du nœud.
« right » : stocke l’indice du fils droit du nœud.

 Une variable est utilisée pour mémoriser l’indice de la racine de


l’arbre.

Pr. Salwa BELAQZIZ 54


Implémentation contigüe
5
LES ARBRES

Pr. Salwa BELAQZIZ 55


Implémentation contigüe
5
LES ARBRES

B D

E F G H

-1 indique la représentation de la valeur


NULL (absence d’un fils)
Pr. Salwa BELAQZIZ 56
Implémentation contigüe
5
LES ARBRES

La représentation par contiguïté n’est pas


intéressante. On présentera plus en détail la
représentation chaînée qui présente par contre une
grande souplesse et rigidité.

Pr. Salwa BELAQZIZ 57


Implémentation Chaînée
5
LES ARBRES

Implémentation chaînée d’un arbre binaire:

 Les nœuds sont représentés par des structures (enregistrements)


avec trois champs qui sont :
« info » : d’un certain type (stocke la valeur du nœud).
« left » : un pointeur vers le fils gauche du nœud.
« right » : un pointeur vers le fils droit du nœud.

 La valeur NULL reflète l’absence du fils.

 Allocation dynamique des nœuds

Pr. Salwa BELAQZIZ 58


Implémentation Chaînée
5
LES ARBRES

Implémentation chaînée d’un arbre binaire:

 L’arbre binaire lui-même est déterminé par l’adresse de sa racine,


c’est-à-dire qu’il est représenté par un pointeur vers sa racine.

 L’arbre binaire vide est représenté par NULL.

Pr. Salwa BELAQZIZ 59


Implémentation Chaînée
5
LES ARBRES

Pr. Salwa BELAQZIZ 60


Implémentation contigüe
5
LES ARBRES
racine

A A

B C

B C
D E

D E

Pr. Salwa BELAQZIZ 61


Implémentation Chaînée
5
LES ARBRES

1- Construction d’un arbre binaire :

creer_feuille(val)

Cons_arbre(Ag, Ad, val)

Pr. Salwa BELAQZIZ 62


Implémentation Chaînée
5
LES ARBRES 1- Construction d’un arbre binaire : x
feuille

Pr. Salwa BELAQZIZ 63


Implémentation Chaînée
5
LES ARBRES 1- Construction d’un arbre binaire :

Pr. Salwa BELAQZIZ 64


Implémentation Chaînée
5
LES ARBRES 1- Construction d’un arbre binaire :

node

arbre_g arbre_d

Pr. Salwa BELAQZIZ 65


Implémentation Chaînée
5
LES ARBRES

Opérations :

 Pour tout arbre :


 Exploration (parcours) de l'arbre;
 Nettoyer (vider) l'arbre de ses valeurs;
 Calcul de la taille en nombre de nœuds ;
 Calcul de la profondeur maximale;
 ….

Pr. Salwa BELAQZIZ 66


Implémentation Chaînée
5
LES ARBRES

Opérations :

 Pour tout arbre :


 Exploration (parcours) de l'arbre;
 Nettoyer (vider) l'arbre de ses valeurs;
 Calcul de la taille en nombre de nœuds ;
 Calcul de la profondeur maximale;
 ….

Pr. Salwa BELAQZIZ 67


Implémentation Chaînée
5
LES ARBRES

2- Parcours d’un arbre binaire :

 Plusieurs opérations sur les arbres binaires nécessitent le parcours


de l’arbre tout entier.
 Par exemple, l’affichage d’un arbre binaire nécessite de
parcourir tous les nœuds de l’arbre.

 En partant d’un nœud N, nous pouvons effectuer l’une des actions


suivantes :
 Visiter le nœud (N);
 Traverser récursivement le sous-arbre gauche (G);
 Traverser récursivement le sous-arbre droit (D);
Pr. Salwa BELAQZIZ 68
Implémentation Chaînée
5
LES ARBRES

2- Parcours d’un arbre binaire :

 Trois types de parcours :


 Le parcours préfixe : N, G, D. N
 Le parcours infixe : G, N, D.
 Le parcours postfixe : G, D, N.

G D

Pr. Salwa BELAQZIZ 69


Implémentation Chaînée
5
LES ARBRES
2- Parcours d’un arbre binaire :
Le parcours préfixe : N, G, D.

Pr. Salwa BELAQZIZ 70


Implémentation Chaînée
5
LES ARBRES

Opérations :

 Pour tout arbre :


 Exploration (parcours) de l'arbre;
 Nettoyer (vider) l'arbre de ses valeurs;
 Calcul de la taille en nombre de nœuds ;
 Calcul de la profondeur maximale;
 ….

Pr. Salwa BELAQZIZ 71


Implémentation Chaînée
5
LES ARBRES
3- Nettoyer un arbre binaire de ses valeurs :

Pr. Salwa BELAQZIZ 72


Implémentation Chaînée
5
LES ARBRES

Opérations :

 Pour tout arbre :


 Exploration (parcours) de l'arbre;
 Nettoyer (vider) l'arbre de ses valeurs;
 Calcul de la taille en nombre de nœuds ;
 Calcul de la profondeur maximale;
 ….

Pr. Salwa BELAQZIZ 73


Implémentation Chaînée
5
LES ARBRES
4- Calculer la taille d’un arbre binaire :

Pr. Salwa BELAQZIZ 74


Implémentation Chaînée
5
LES ARBRES

Opérations :

 Pour tout arbre :


 Exploration (parcours) de l'arbre;
 Nettoyer (vider) l'arbre de ses valeurs;
 Calcul de la taille en nombre de nœuds ;
 Calcul de la profondeur maximale;
 ….

Pr. Salwa BELAQZIZ 75


Implémentation Chaînée
5
LES ARBRES 5- Calcul de la profondeur maximale d’un arbre binaire :

Pr. Salwa BELAQZIZ 76


EXERCICE
5
LES ARBRES

Création de l’arbre binaire ci-dessous, le calcul de sa taille


et de sa profondeur, et la suppression de ses nœuds

2 4

8 3

Pr. Salwa BELAQZIZ 77


EXEMPLE
5
LES ARBRES

Pr. Salwa BELAQZIZ 78


EXEMPLE
5
LES ARBRES

Pr. Salwa BELAQZIZ 79


Implémentation Chaînée
5
LES ARBRES

Remarque :

Dans cet exemple, nous avons construis l’arbre binaire de l’exemple


donné.

Pour changer d’arbre, il faut réécrire l’appel de la fonction


« cons_arbre ».

Si l’arbre est volumineux, l’écriture devient vite complexe. Dans ce


cas, l’utilisation des fichiers devient plus adéquate.

Pr. Salwa BELAQZIZ 80


Implémentation Chaînée
5
LES ARBRES

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

Utilisation des Arbres Binaires Ordonnés


81
Pr. Salwa BELAQZIZ
5
LES ARBRES

ARBRES BINAIRES
DE RECHERCHE

Pr. Salwa BELAQZIZ 82


Définition
5
LES ARBRES

 Un Arbre Binaire de Recherche (ABR) est un arbre binaire ordonné


horizontalement tel que:
 Tous les noeuds du sous-arbre gauche d'un noeud ont une valeur inférieur ou égale à
la valeur du noeud
 Tous les noeuds du sous-arbre droit d'un noeud ont une valeur supérieur à la valeur
du noeud

44

<=v >v <= 44 > 44


Pr. Salwa BELAQZIZ 83
Définitions
5
LES ARBRES
LES ARBRES BINAIRES DE RECHERCHE

70

65 80

50 69 78 92

23 62 68

Pr. Salwa BELAQZIZ 84


Exercice 3
5
LES ARBRES

Construire un ABR contenant les entiers suivants :


55 34 49 20 38 58 10 50 25 22

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

Pr. Salwa BELAQZIZ 85


Arbres Binaires de Recherche
5
LES ARBRES

Opérations :

 Recherche d’un élément;


 Ajout d’un élément;
 Suppression d’un élément;
 ….

Pr. Salwa BELAQZIZ 86


Arbres Binaires de Recherche
5
LES ARBRES

Opérations :

 Recherche d’un élément;


 Ajout d’un élément;
 Suppression d’un élément;
 ….

Pr. Salwa BELAQZIZ 87


Recherche dans un ABR
5
LES ARBRES

Les mêmes fonctions de parcours s’appliquent aux ABR.

Pour rechercher un élément dans un ABR, il suffit de partir de la racine


de l’arbre et de suivre un parcours qui passe à gauche ou à droite selon
la clé du nœud visité. => Recherche Dichotomique.

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).

Pr. Salwa BELAQZIZ 88


Recherche dans un ABR
5
LES ARBRES

Recherche Dichotomique :

racine
recherche(38,racine);
55
34 58
20 49

10 25 38 50
22

Pr. Salwa BELAQZIZ 89


Recherche dans un ABR
5
LES ARBRES

Recherche Dichotomique :

r
recherche(38,racine);
r 55
34 58
r
20 49
r
10 25 38 50
22

Pr. Salwa BELAQZIZ 90


Recherche dans un ABR
5
LES ARBRES

Recherche Dichotomique :

Pr. Salwa BELAQZIZ 91


Arbres Binaires de Recherche
5
LES ARBRES

Opérations :

 Recherche d’un élément;


 Ajout d’un élément;
 Suppression d’un élément;
 ….

Pr. Salwa BELAQZIZ 92


Insertion dans un ABR
5
LES ARBRES

Principe : Recherche + Insertion

Rechercher la place de l’élément en le comparant aux nœuds de


l’arbre.

Si l’élément ne figure pas déjà dans l’arbre, on aboutit nécessairement


à une feuille alors il suffit de relier l’élément à cette feuille.

Pr. Salwa BELAQZIZ 93


Insertion dans un ABR
5
LES ARBRES

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

Pr. Salwa BELAQZIZ 94


Insertion dans un ABR
5
LES ARBRES

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

Pr. Salwa BELAQZIZ 95


Insertion dans un ABR
5
LES ARBRES

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

Pr. Salwa BELAQZIZ 96


Insertion dans un ABR
5
LES ARBRES

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

Pr. Salwa BELAQZIZ 97


Insertion dans un ABR
5
LES ARBRES
La fonction d’insertion

Passage par valeur : pas suffisant !!

void ajout_valeur(int x, Tree *r)


{
……
if (x > r  valeur)
ajout(x, r  t_droit));
……
}

Pr. Salwa BELAQZIZ 98


Insertion dans un ABR
5
LES ARBRES
La fonction d’insertion

Méthode 1 : Passage par adresse

void ajout_adresse(int x, Tree **r)


{
……
if (x > (*r)  valeur)
ajout(x, &( (*r)  t_droit));
……
}

Pr. Salwa BELAQZIZ 99


Insertion dans un ABR
5
LES ARBRES
La fonction d’insertion

Méthode 1 : Passage par adresse

Pr. Salwa BELAQZIZ 100


Insertion dans un ABR
5
LES ARBRES
La fonction d’insertion
Méthode 2 : Passage par valeur avec pointeur au retour

Pr. Salwa BELAQZIZ 101


Insertion dans un ABR
5
LES ARBRES

Pr. Salwa BELAQZIZ 102


Insertion dans un ABR
5
LES ARBRES

103
Pr. Salwa BELAQZIZ
Arbres Binaires de Recherche
5
LES ARBRES

Opérations :

 Recherche d’un élément;


 Ajout d’un élément;
 Suppression d’un élément;
 ….

Pr. Salwa BELAQZIZ 104


Suppression dans un ABR
5
LES ARBRES

Principe : Recherche + Suppression

Trois cas se présentent pour le nœud à supprimer :


 Nœud terminal

 Nœud avec un descendant

 Nœud avec deux descendants

Pr. Salwa BELAQZIZ 105


Suppression dans un ABR
5
LES ARBRES

Principe : Recherche + Suppression

Trois cas se présentent pour le nœud à supprimer :


 Si l’élément à supprimer est une feuille, alors on le supprime tout
simplement
 Si l’élément a un seul descendant, alors on le remplace par celui-ci.
 Si l’élément a deux descendants, alors on a le choix de le remplacer
soit par l’élément le plus à gauche du sous arbre droit soit par
l’élément le plus à droite du sous arbre gauche.

Pr. Salwa BELAQZIZ 106


Suppression dans un ABR
5
LES ARBRES

Exemple :
1- Suppression de l’élément « 7 »

10 10

8 15 8 15

6 9 11 16 6 9 11 16

Pr. Salwa BELAQZIZ 107


Suppression dans un ABR
5
LES ARBRES

Exemple :
2- Suppression de l’élément « 6 »

10 10

8 15
8 15

6 9 11 16
7 9 11 16

Pr. Salwa BELAQZIZ 108


Suppression dans un 10ABR
5
LES ARBRES
8 15

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

Pr. Salwa BELAQZIZ 109

Vous aimerez peut-être aussi