Vous êtes sur la page 1sur 45

Arbres Binaires

El Houssaine OUTFARDINE

CPGE Tanger
Lycee Moulay EL-Hassan
outfardine.cpge@gmail.com
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Plan

1 Introduction

2 Terminologie de base

3 Arbres binaires

4 Parcours d’un arbre binaire

5 Arbres binaires de recherche

Arbres Binaires 1 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Introduction

Les arbres et les structures arborescentes sont très utilisés en informatique. D’une part
les informations sont souvent hiérarchisées, et se présentent donc naturellement sous
une forme arborescente, et d’autre part de nombreuses structures de données parmi les
plus efficaces sont représentées par des arbres (les tas, les arbres binaires de recherches,
les B-arbres, les forêts,...).

Arbres Binaires 2 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Définition 1
Un arbre est un ensemble d’éléments appelés nœuds reliés par des arcs.

Arbres Binaires 3 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Les arbres sont enracinés. Une fois la racine définie tous les nœuds admettent un
niveau.
Les arbres ont des nœuds internes et des feuilles (nœuds externes). Chaque
nœud (à l’exception de la racine) a un parent et admet zéro ou plusieurs fils.

Arbres Binaires 4 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Exemples :

La racine est le nœud 1.


Le père est placé au dessus des fils.
Le segment reliant un fils à son père est un arc.

Arbres Binaires 5 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Exemples :

Arbre représentant une expression arithmétique

((a-b)*(c/d))+e

Arbres Binaires 6 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Exemples :

L’arbre généalogique suivant représente quelques descendants mâles de Noé

Arbres Binaires 7 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Définition récursive :

Un nœud unique est un arbre. Dans ce cas il est aussi la racine de l’arbre.

Si n est un nœud et A1 , A2 , . . . , Ak sont des arbres de racines respectives


n1 , n2 , . . . , nk

Arbres Binaires 8 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Définition récursive :

alors on peut construire un arbre en associant comme père unique aux nœuds
n1 , n2 , . . . , nk , le nœud n. dans ce nouvel arbre, n est la racine et A1 , A2 , . . . , Ak sont
les sous arbres de cette racine. Les nœuds n1 , n2 , . . . , nk , sont appelés les fils du
nœud n.

Arbres Binaires 9 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Chemins entre nœuds :

Si n1 , n2 , . . . , nj , est une suite de nœuds telle que ni est le père de ni+1 pour i allant
de 1 à j-1, alors cette suite est appelée chemin entre le nœud n1 et le nœud nj .

⋄ n1 , n2 , n3 et n4 : chemin entre le nœud n1 et le nœud n4


⋄ La longueur du chemin est le nombre de nœuds - 1
(=nombre d’arcs).
⋄ La longueur du chemin entre le nœud n1 et le nœud n4 = 3

Arbres Binaires 10 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Ascendants et descendants :

⋄ S’il existe un chemin entre les nœuds a et b alors a est dit ascendant de b (ou
ancêtre), b et dit descendant de a.
⋄ Tout nœud est un de ses descendants et un de ses ascendants.
⋄ Tout nœud ascendant ou descendant d’un nœud différent de lui-même est un
ascendant ou descendant propre.

⋄ Dans un arbre seule la racine n’a pas d’ascendant propre.


⋄ Un nœud sans descendant propre est appelé Feuille.
⋄ Des nœuds ayant le même père sont appelés Frères.
⋄ Un nœud qui n’est pas une feuille est un nœud interne.
⋄ Un arbre sans nœud est un arbre vide.

Arbres Binaires 11 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Ascendants et descendants :

⋄ 1, 3, 7, 9 est un chemin de longueur ?


⋄ 1, 3, 6 ?
⋄ Les descendants propres de 3 sont :
⋄ Les fils de 3 sont :
⋄ Le père de 3 est :
⋄ Les ascendants propres de 7 sont :
⋄ Les feuilles de l’arbre sont :
⋄ 4, 5 et 6 sont :

Arbres Binaires 12 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Ascendants et descendants :

⋄ 1, 3, 7, 9 est un chemin de longueur : 3


⋄ 1, 3, 6 n’est pas un chemin.
⋄ Les descendants propres de 3 sont : 7, 8 et 9
⋄ Les fils de 3 sont : 7 et 8
⋄ Le père de 3 est : 1
⋄ Les ascendants propres de 7 sont : 3 et 1
⋄ Les feuilles de l’arbre sont : 4, 5, 6, 8 et 9
⋄ 4, 5 et 6 sont : des frères

Arbres Binaires 13 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Hauteur et profondeur :

La hauteur d’un nœud dans un arbre est la longueur du plus long chemin que
l’on peut mener entre ce nœud et une feuille de l’arbre.

⋄ La hauteur de 3 ?
⋄ La hauteur de l’arbre ?

Arbres Binaires 14 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Hauteur et profondeur :

La hauteur d’un nœud dans un arbre est la longueur du plus long chemin que
l’on peut mener entre ce nœud et une feuille de l’arbre.

⋄ La hauteur de 3 est 2.
⋄ La hauteur de l’arbre est 3.

La hauteur d’un arbre est la hauteur de sa racine.

Arbres Binaires 15 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Hauteur et profondeur :

La profondeur d’un nœud est la longueur du chemin entre la racine et ce nœud.

⋄ La profondeur de 3 est : 1.
⋄ La hauteur de 3 est 2.

Arbres Binaires 16 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Ordre des nœuds :

Les fils d’un arbre sont habituellement ordonnés de gauche à droite .


Les deux arbres ci-dessous sont différents :

Arbres Binaires 17 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Terminologie de base

Ordre des nœuds :

L’ordre gauche-droit peut être prolongé pour comparer des nœuds qui ne sont ni
ascendants ni descendants.
Si b et c sont deux frères, que b et à gauche de c, tout descendant de b est à
gauche de tout descendant de c.

⋄ 2 est à gauche de 3.
⋄ 5 est à gauche de 7
⋄ 4 est à gauche de 9
⋄ 3 n’est ni à gauche ni à droite de 9.

Arbres Binaires 18 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres binaires (AB)

Définitions :

Un arbre binaire est un arbre dont chaque nœud a au maximum deux fils.
Les arbres binaires distinguent le fils gauche du fils droit.
Ces deux arbres binaires sont différents :

Arbres Binaires 19 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres binaires (AB)


Définitions :

Dans un arbre binaire dégénéré ou filiforme chaque nœud a un seul fils.


Un arbre binaire strict ou localement complet est un arbre binaire dont chaque
nœud a deux fils ou est une feuille.

Arbres Binaires 20 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres binaires (AB)

Arbre binaire complet :

Un arbre binaire complet est un arbre binaire dont tous les nœud internes ont
deux fils et toutes les feuilles sont au même niveau.

Arbres Binaires 21 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres binaires (AB)

Arbre binaire complet :

Soit A un arbre binaire complet. Le nombre de noeuds au niveau p est 2p . En


particulier le nombre de feuilles est donc 2h−1 si h est la hauteur= nombre de
niveaux.

Arbres Binaires 22 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres binaires (AB)

Arbre binaire complet :

Le nombre total de noeuds d’un arbre binaire complet de h niveaux est :

∑hi=−01 2i = 2h − 1
On en déduit que la hauteur h(A) d’un arbre binaire A contenant n noeuds est au
moins égale à ⌊log2 (n))⌋ + 1.

Arbres Binaires 23 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres binaires (AB)

Arbre binaire complet :

Le nombre total de noeuds d’un arbre binaire complet de h niveaux est :

∑hi=−01 2i = 2h − 1
On en déduit que la hauteur h(A) d’un arbre binaire A contenant n noeuds est au
moins égale à ⌊log2 (n))⌋ + 1.

Preuve :
Si A est un arbre de hauteur h et comportant n noeuds, on a :
1 + 2 + · · · + 2h−2 = 2h−1 − 1 < n ≤ 1 + 2 + · · · + 2h−1 = 2h − 1
soit 2h−1 ≤ n < 2h et donc h − 1 ≤ log2 (n) < h qui donne le résultat.

Remarque 1
La hauteur minimale ⌊log2 (n))⌋ + 1 est atteinte lorsque l’arbre est complet.

Arbres Binaires 23 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Principe :

Le principe est simple : pour parcourir l’arbre a, on parcourt récursivement dans un


ordre prédéfini son sous-arbre gauche et son sous-arbre droit. Ainsi chaque sous-arbre
sera exploré dans sa totalité.

Algorithme 1 : Parcours
Entrées : Arbre A
Sorties : Liste de valeurs de A
1 si A ! = Nil alors
// Traitement avant
2 Parcours (A→fg)
// Traitement entre
3 Parcours (A→fd)
// Traitement après
4 sinon
5 Retourne vide

Arbres Binaires 24 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en profondeur (DFS)


Parcours préfixe : r-g-d

Le parcours préfixe est décrit récursivement :


Visiter la racine
Visiter le sous-arbre gauche en parcours préfixe
Visiter le sous-arbre droit en parcours préfixe

Arbres Binaires 25 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en profondeur (DFS)


Parcours préfixe : r-g-d

Le parcours préfixe est décrit récursivement :


Visiter la racine
Visiter le sous-arbre gauche en parcours préfixe
Visiter le sous-arbre droit en parcours préfixe

Un affichage préfixe donnerait :


12 − 1 − 91 − 32 − 67 − 45 − 50 − 7 −
61 − 40 − 82

Arbres Binaires 25 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en profondeur (DFS)


Parcours infixe : g-r-d

Le parcours infixe est décrit récursivement :


Visiter le sous-arbre gauche en parcours infixe
Visiter la racine
Visiter le sous-arbre droit en parcours infixe

Arbres Binaires 26 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en profondeur (DFS)


Parcours infixe : g-r-d

Le parcours infixe est décrit récursivement :


Visiter le sous-arbre gauche en parcours infixe
Visiter la racine
Visiter le sous-arbre droit en parcours infixe

Un affichage infixe donnerait :


32 − 91 − 1 − 45 − 67 − 50 − 12 − 61 −
40 − 7 − 82

Arbres Binaires 26 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en profondeur (DFS)


Parcours postfixe : g-d-r

Le parcours postfixe est décrit récursivement :


Visiter le sous-arbre gauche en parcours postfixe
Visiter le sous-arbre droit en parcours postfixe
Visiter la racine

Arbres Binaires 27 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en profondeur (DFS)


Parcours postfixe : g-d-r

Le parcours postfixe est décrit récursivement :


Visiter le sous-arbre gauche en parcours postfixe
Visiter le sous-arbre droit en parcours postfixe
Visiter la racine

Un affichage postfixe donnerait :


32 − 91 − 45 − 50 − 67 − 1 − 40 − 61 −
82 − 7 − 12

Arbres Binaires 27 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en largeur (BFS)

Visiter les nœuds niveau par niveau depuis la racine


Peut être décrit facilement en utilisant une File

Arbres Binaires 28 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Parcours d’un arbre binaire

Parcours en largeur (BFS)

Visiter les nœuds niveau par niveau depuis la racine


Peut être décrit facilement en utilisant une File

Un affichage en largeur donnerait :


12 − 1 − 7 − 91 − 67 − 61 − 82 − 32 −
45 − 50 − 40

Arbres Binaires 28 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Un arbre binaire de recherche (ou ABR) est une structure de donnée qui permet de
représenter un ensemble de valeurs si l’on dispose d’une relation d’ordre sur ces
valeurs. Les opérations caractéristiques sur les arbres binaires de recherche sont
l’insertion, la suppression, et la recherche d’une valeur. Ces opérations sont peu
coûteuses si l’arbre n’est pas trop déséquilibré.

Définition 2
Un arbre binaire de recherche (ABR) est un arbre étiqueté tel que pour tout nœud n :
Tout nœud du sous arbre gauche a une valeur inférieure ou égale à la valeur de n.
Tout nœud du sous arbre droit a une valeur supérieure à la valeur de n.

Arbres Binaires 29 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Exemple :

Arbres Binaires 30 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Exemple :

Si on fait un parcours infixe de l’arbre, on obtient la liste des valeurs des nœuds
triée en ordre croissant.
Dans l’exemple :
3 − 4 − 5 − 9 − 12 − 18 − 19 − 20

Arbres Binaires 30 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Exemple :

Il existe plusieurs représentations du même ensemble d’éléments par des arbres


binaires de recherche.
Par exemple, les 2 arbres suivants représentent le même ensemble de chiffres :

Arbres Binaires 31 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Caractéristiques :

Pour accéder à la clé la plus petite (resp. la plus grande) dans un ABR il suffit de
descendre sur le fils gauche (resp. sur le fils droit) autant que possible. Le dernier
noeud visité, qui n’a pas de fils gauche (resp. droit), porte la valeur la plus petite (resp.
la plus grande) de l’arbre.

Arbres Binaires 32 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)


Recherche dans un ABR :
Pour rechercher un élément x :
On compare l’élément x à la valeur de la racine.
S’il est égale, la recherche est terminée.
S’il est plus petit on poursuit dans le sous arbre gauche
S’il est plus grand on poursuit dans le sous arbre droit
Si le sous arbre dans le quel on cherche est vide c’est que l’élément n’appartient
pas à l’ensemble.

Arbres Binaires 33 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Insertion d’une nouvelle valeur :

Le principe est le même que pour la recherche. Un nouveau noeud est crée avec la
nouvelle valeur et inséré à l’endroit où la recherche s’est arrêtée.

Arbres Binaires 34 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Suppression d’un noeud :

L’opération de suppression sur un arbre de recherche binaire est plus compliquée que
celles d’ajout et de recherche. Fondamentalement, elle peut être divisée en deux
étapes :

Rechercher un noeud à supprimer ;

Si le noeud est trouvé, exécuter l’algorithme de suppression.

L’opération dépend du nombre de fils du noeud à supprimer.

Arbres Binaires 35 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Suppression d’un noeud :

Cas 1 : le noeud à supprimer n’a pas de fils, c’est une feuille :


Il suffit d’enlever en modifiant le lien du père, si il existe, vers ce fils. Si le père n’existe
pas l’arbre devient l’arbre vide.

Arbres Binaires 36 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)

Suppression d’un noeud :

Cas 2 : le noeud à supprimer a un fils et un seul :


Dans ce cas, le nœud est retiré de l’arbre et l’algorithme attache l’enfant unique (y
compris son sous-arbre) directement au parent du nœud supprimé.

Arbres Binaires 37 / 38
Introduction Terminologie de base Arbres binaires Parcours d’un arbre binaire Arbres binaires de recherche

Arbres Binaires de Recherche (ABR)


Suppression d’un noeud :

Cas 3 : le noeud à supprimer a deux fils :


Trouver une valeur minimale dans le sous-arbre droit.
Remplacez la valeur du nœud à supprimer par le minimum trouvé. Maintenant,
le sous-arbre droit contient un duplicata !
supprimer le duplicata du sous-arbre droit.
Remarquez que le nœud ayant une valeur minimale n’a pas d’enfant gauche et que,
par conséquent, son retrait peut entrer dans le premier ou le second cas ci-dessus.

Arbres Binaires 38 / 38

Vous aimerez peut-être aussi