Vous êtes sur la page 1sur 34

TDA

ARBRE
2 0 2 2 - 2 0 2 3 – 3A I N F O R M AT I Q U E – B . H A S S A N
1
Cours Arbres

Arbres Arbres
Intro
Binaires Rouge-Noir

Insertion / Insertion /
Parcours Recherche Rotation
Suppression Suppression

Exemple d’arbre n-aire. La racine en haut, a trois « enfants ».


Certains enfants ont 0,3 ou 2 enfants.
Ce pourrait être un arbre ternaire (au maximum 3 enfants)

2
Cours Arbres

VOCABULAIRE Intro Arbres Binaires


Arbres Rouge-
Noir

Insertion Insertion
Parcours Recherche Rotation
/ /
Suppressio Suppressio
n n

• Arbre :structure de données composée d’un ensemble de nœuds.Chaque nœud contient les
informations spécifiques à l’application et des pointeurs vers les autres nœuds (des sous-
arbres)
• Feuilles :les nœuds ne pointant vers aucun autre nœud
• Racine :Nœud de niveau 1 pointé par aucun autre nœud
• Niveau :la racine est au niveau 1.Les autres nœuds ont un niveau qui est augmenté de 1 par
rapport au nœud dont ils dépendent.
• Hauteur (profondeur) d’un arbre :c’est le niveau maximum atteint,(par la branche la plus
longue)

3
Cours Arbres

VOCABULAIRE 2 Intro Arbres Binaires


Arbres Rouge-
Noir

Insertion Insertion
Parcours Recherche Rotation
/ /
Suppressio Suppressio
n n

• Arbre ordonné :si l’ordre des sous arbres est significatif on dit que l’arbre est ordonné
(exemple arbre généalogique)
• Arbre binaire :type d’arbre ordonné tel que chaque Nœud a au plus deux fils :fils gauche et
fils droit.
• Degré d’un nœud :le nombre de successeurs (de fils) d’un nœud (Arbres a 3 fils = degré 3)
• Degré d’un arbre :si N est le degré maximum des nœuds de l’arbre,l’arbre est dit n-aire.Dans
l’exemple l’arbre est « ternaire »
• Taille :le nombre total de nœuds de l’arbre,ici 9

4
VOCABULAIRE 3

• Arbre binaire complet :c’est un arbre de taille 2k-1 avec k le niveau des feuilles.

k= 3
23-1 = 7 nœuds

C’est un arbre complet

• Arbre binaire parfaitement équilibré :si pour chaque nœuds les nombres de nœuds des sous-
arbres gauche et droit différent au plus d’un.
• Arbre binaire équilibré :si pour chaque nœud,les hauteurs des sous-arbres gauche et droit
diffèrent au plus d’un

5
UTILISATION DES ARBRES

• Expressions arithmétiques :arbre binaire ordonné

• Structure d’une phrase :arbre n-aire ordonné

• Arbre généalogique
• Tournoi sportif
• Répertoire de fichiers d’un OS
• Document XML /HTML
• Interface graphique d’un logiciel
• Nomenclature d’un objet (voiture composée de moteur, carrosserie, sièges, etc.)
• C lassification des espèces animales

6
(5+ (2*3)) * (10*10+9*9)
LES ARBRES
BINAIRES
8
CELLULE D’UN ARBRE BINAIRE

Chaque nœud d’un arbre binaire (y compris la


racine) a besoin de maximum 4 informations.
Parent

Nous le représenterons sous la forme d’une


Clé / Valeur
structure contenant :
• 1 lien vers le nœud parent (null pour la
gauche droite racine)
• 1 valeur/1 clé (qui peut être complexe)
• 2 liens vers des nœuds enfants
– Gauche et droite

9
ORGANISATION D’UN ARBRE BINAIRE

• X etY deux cellules d’un arbre binaire

• SiY appartient à l’arbre de gauche de X


clef[Y ] <= clef[X]
Pour chaque nœud :
• SiY appartient à l’arbre de droite de X
• Les enfants de gauche ont des clés inférieures au
clef[X ] <= clef[Y ] parent
• Les enfants de droite ont des clés supérieures au
parent

10
PARCOURIR UN
ARBRE BINAIRE
11
3 TYPES DE PARCOURS

• But :parcourir tous les nœuds de l’arbre et afficher leurs clés

• Exemple des trois parcours :


– Infixe {1;2;3} 2

– Préfixe {2;1;3}
– Suffixe {1;3;2} 1 3

12
EXEMPLE : PARCOURS D’UN ARBRE
GÉNÉRIQUE
3 parcours possibles X

• Infixe { [sous-arbre gauche]; X; [sous-arbre droite]}


• Préfixe { X; [sous-arbre gauche]; [sous-arbre droite]}
Sous-arbre Sous-arbre
• Suffixe { [sous-arbre gauche]; [sous-arbre droite]; X} gauche droite

13
IMPLÉMENTATION DU PARCOURS
INFIXE
• Rappel :
Pour notre parcours infixe nous afficherons la clé de la racine entre les clés du sous-arbre de
gauche et du sous-arbre de droite

• Algorithme récursif

14
COMPLEXITÉ DU PARCOURS

• Si x est la racine d’un sous-arbre à n nœuds alors l’appel :


Parcours_infixe(x) prends un temps O (n)

• En effet,la procédure Parcours_infixe est appelée deux fois pour chaque nœud de l’arbre (une
fois pour son sous-arbre gauche et une fois pour son sous-arbre droit)

15
RECHERCHE
DANS UN ARBRE
BINAIRE
16
OPÉRATIONS COURANTES

Les arbres de recherche binaires disposent souvent des primitives suivantes:


– RECHERCHER
– MINIMIUM
– MAXIMUM
– SUCCESSEUR
– PREDECESSEUR
Propriété :
Toutes ces opérations peuvent s’exécuter dans un temps O(h) où h est la hauteur de l’arbre

17
RECHERCHER UN ÉLÉMENT PAR SA
CLÉ
Soit une clé k et un pointeur x sur la racine de l’arbre.La fonction RECHERCHER renvoie un
pointeur sur un nœud de clé k s’il en existe une et NULL sinon

ARBRE_RECHERCHER(x, k)

N. B.:
On designe par Clef [x] le clef du noeud X
et non Pas clef indice x

18
RECHERCHE ITÉRATIVE

• ARBRE_RECHERCHER_ITERATIF(x, k)

droite

• La recherche itérative est souvent plus rapide que la recherche récursive.

19
RECHERCHER LE MINIMUM

• On cherche le minimum d’un arbre binaire en suivant les pointeurs gauche de la racine jusqu’à
rencontrer NULL. La procédure qui renvoie l’élément de clé minimum d’un sous-arbre de
racine x s’écrit :

• ARBRE_MINIMUM( x )

20
RECHERCHER LE MAXIMUM

• La procédure de recherche de l’élément maximum est symétrique et le pseudo-code est :

• ARBRE_MAXIMUM( x )

21
FONCTION
D’INSERTION
22
GÉNÉRALITÉS

• L’insertion ou la suppression d’un élément dans un arbre binaire modifie l’ensemble dynamique
de la structure de données.
• La structure doit être modifiée afin de s’assurer qu’elle vérifie toujours les propriétés d’un
arbre de recherche binaire.
• L’insertion est relativement simple alors que la suppression peut poser plus de problèmes.

23
INSERTION

24
INSERTION D’UN ÉLÉMENT Z
CLEF = 13

25
26
27
28
29
30
31
À CE STADE, ON A TROUVÉ LA POSITION OÙ INSÉRER Z (ET SON
PARENT).

32
CAS OÙ L’ARBRE ÉTAIT VIDE

33
ON INSÈRE L’ÉLÉMENT Z À SA PLACE

34

Vous aimerez peut-être aussi