0% ont trouvé ce document utile (0 vote)
43 vues34 pages

Arbre

Transféré par

Ziyech
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
43 vues34 pages

Arbre

Transféré par

Ziyech
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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œ[Link] 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 [Link] 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 [Link]
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’[Link] 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