Cours Algo II 2021 - Chapitre5

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

ISET Nabeul

LOG
O

Cours Algorithmique ii

Classe: TI1*
Enseignantes: Mme Afef FKIRI
ISET Nabeul

LOG
O

Chapitre 5:
Les structures Arborescentes
Introduction

 Des nombreuses informations peuvent être organisées sous


forme arborescente telles que : un arbre généalogique, un
dictionnaire, une expression syntaxique, une relation
d’inclusion.
 Il est fortement nécessaire d’étudier cette structure de données.

3
Définitions, Notations et représentations

 Définition générale d’un arbre :


 On peut donner cette définition récursive : Un arbre est :
- Soit vide
- Soit constitué d’un élément auquel sont rattachés 1 ou
plusieurs arbres.

4
Définitions, Notations et représentations
 Terminologie :

 Un arbre est constitué des sommets ou nœuds. EXP A, B, C, D,


E, F, G
 Un nœud possède un certain nombre des fils. EXP A possède B
et C comme fils.
 Chaque nœud possède 1 seul père sauf la racine qui n’a pas de
père. EXP Le père de D est B, A n’a pas de père (c’est la racine
de l’arbre).
5
 Le lien qui relie 2 nœuds s’appelle Arc ou Branche.
Définitions, Notations et représentations
 Arbre n-aire et Arbre binaire :
 Un arbre est dit n-aire Lorsqu’il admet pour chaque nœud au
plus n fils.

 Si n=2, l’arbre est dit « Binaire », si n=1, l’arbre est dit liste ou
arbre dégénéré. 6
Définitions, Notations et représentations
 Arbre n-aire et Arbre binaire :
 Un arbre binaire est
• Soit vide.
• Soit composé d’un élément auquel sont chaînés un sous-arbre
gauche et un sous-arbre droit.

7
Définitions, Notations et représentations
 Représentation d’un arbre binaire :
 La représentation chaînée des arbres binaires

TYPE Arbre = ↑ Nœud

TYPE Nœud = ENREGISTREMENT

Gauche : Arbre

Droite : Arbre

Info : élément

FIN ENREGISTREMENT

8
Définitions, Notations et représentations
 Soit l’arbre suivant :

 Racine : contenant l’adresse du nœud


racine de l’arbre. Si l’arbre n’est pas
vide (Racine <> NIL).
 Racine↑.Info : l’information du nœud.
 Racine↑.Gauche : sous-arbre gauche.

 Racine↑.Droite : sous-arbre droit. 9


Définitions, Notations et représentations
 Niveau:
 On dit que 2 nœuds sont à un même niveau dans un arbre, s’ils
sont issus d’un même nœud après le même nombre de filiations.
 Exemple:

10
Définitions, Notations et représentations
 Mot des feuilles d’un arbre binaire:
 Le mot des feuilles d’un arbre binaire est la chaîne formée de
gauche à droite de la valeur des feuilles de l’arbre.
 Exemple Pour l’arbre de la figure précédente, le Mot des
feuilles est « DEH ».

11
Définitions, Notations et représentations
 Arbre binaire complet:
 Si chaque nœud autre qu’une feuille admet exactement 2
descendants et si toutes les feuilles sont au même niveau, on dit
que l’arbre binaire est « complet »,
 La taille d’un arbre binaire complet = 2k-1 où k est le niveau des
feuilles.

12
Définitions, Notations et représentations
Hauteur d’un nœud:
 La hauteur d’un arbre est égale
au maximum du niveau des
feuilles.
• La hauteur d’un arbre est
égale à la hauteur de sa
racine.
• La hauteur d’un arbre vide =
=Max + 1
0
• La hauteur d’un nœud = au
maximum des hauteurs du
sous-arbre gauche et du Max = 1
sous-arbre droit + 1.
13
Définitions, Notations et représentations
 Facteur d’équilibre :
 Le facteur d’équilibre de chaque sous-arbre est associé à sa racine.
 Le facteur d’équilibre d’un nœud = hauteur du sous-arbre gauche –
hauteur du sous-arbre droit

14
Définitions, Notations et représentations

 Arbre équilibré :
 Un arbre est dit équilibré si pour tout nœud p de cet arbre, la
valeur absolue de facteur d’équilibre est inférieure ou égale à 1.
 |facteur d’équilibre (p)| <=1
 L’arbre de la figure précédente n’est pas équilibré car il existe
des nœuds tels que A, E qui possèdent des facteurs d’équilibre
dont la valeur absolue > 1.

15
Définitions, Notations et représentations

 Arbre équilibré :Exemple d’arbre équilibré

16
Définitions, Notations et représentations
 Arbre dégénéré:
 Un arbre est dit dégénéré si tous les nœuds de cet arbre ont au
plus un descendant.
 Un arbre dégénéré est équivalent à une liste linéaire.
 Exemple:

17
Définitions, Notations et représentations

 Arbre ordonné (de Recherche) :


 Dans un arbre ordonné, chaque valeur d’un nœud est telle que :
• (Nœud↑.droite <> NIL et Nœud↑.gauche<> NIL et
Nœud↑.gauche↑.info < Nœud↑.info <= Nœud↑.droite↑.info)
• Ou(Nœud↑.droite = NIL et Nœud↑.gauche<> NIL et
Nœud↑.gauche↑.info < Nœud↑.info)
• Ou(Nœud↑.droite <> NIL et Nœud↑.gauche = NIL et
Nœud↑.info <= Nœud↑.droite↑.info)
 Un arbre vide et un arbre réduit à un seul élément sont
ordonnés.
 Tous les sous-arbres d’un arbre ordonné sont ordonnés.
18
Arbres binaires
 Parcours d’un arbre binaire :

 Les parcours préfixé, infixé, postfixé.

19
Arbres binaires
 Parcours d’un arbre binaire : Préfixé
 Ce parcours consiste à effectuer dans l’ordre :
1. Le parcours de la racine (Son traitement)
2. Le parcours du sous-arbre gauche.
3. Le parcours du sous-arbre droit.
 Pour l’arbre précèdent, on traite les nœuds dans cet ordre :
A, B, F, P, M, H, J, C, D, I, R, E
1

2 8

3
6
9 12
7
4 5 20
10 11
Arbres binaires
 Parcours d’un arbre binaire : Infixé
 Ce parcours consiste à effectuer dans l’ordre :
1. Le parcours du sous-arbre gauche.
2. Le parcours de la racine (Son traitement)
3. Le parcours du sous-arbre droit.
 Pour l’arbre précèdent, on traite les nœuds dans cet ordre :
P, F, M, B, H, J, A, I, D, R, C, E
7

4 11

2
5
9 12
6
1 3 21
8 10
Arbres binaires
 Parcours d’un arbre binaire : Postfixé
 Ce parcours consiste à effectuer dans l’ordre :
1. Le parcours du sous-arbre gauche.
2. Le parcours du sous-arbre droit.
3. Le parcours de la racine (Son traitement)
 Pour l’arbre précèdent, on traite les nœuds dans cet ordre :
P, M, F, J, H, B, I, R, D, E, C, A
12

6 11

3
5
9 10
4
1 2
7 822
Arbres binaires
 Parcours d’un arbre binaire : Préfixé
 Version récursive de l’algorithme

PROCEDURE Préfixé (Racine : Arbre)


DEBUT
SI Racine <> NIL ALORS
Traiter (Racine)
Préfixé (Racine↑.gauche)
Préfixé (Racine↑.droite)
FIN SI
FIN
Arbres binaires
 Parcours d’un arbre binaire : Préfixé
 Version récursive de l’algorithme

Afficher(A)
Préfixé(B) Afficher(B)
Préfixé(D) Afficher(D)
Préfixé(Nil)
Préfixé(Nil)
Préfixé(E) Afficher(E)
Préfixé(Nil)
Préfixé(Nil)
Préfixé(F) Afficher(F)
Préfixé(Nil)
Préfixé(G) Afficher(G)
Préfixé(H) Afficher(H) A B D E F G H
Préfixé(Nil)
Préfixé(Nil)
Préfixé(Nil)
Arbres binaires
 Parcours d’un arbre binaire : Préfixé
 Version Itérative de l’algorithme
Rac ←rac↑.gauche
FIN FAIRE PROCEDURE Préfixé (Racine : Arbre)
Dépiler (p, rac) VAR
Rac ←rac↑.droite Rac : Arbre, p : Pile
FIN FAIRE DEBUT
FIN Init_pile (p)
Rac ←Racine
TANT QUE (rac <> NIL) ou (non Pile_vide
(p)) FAIRE
TANT QUE rac <> NIL FAIRE
Traiter (rac)
Empiler (p, rac)
Arbres binaires
 Parcours d’un arbre binaire : Préfixé
 Version Itérative de l’algorithme
Rac

@D
@B
@H A B D E F G H
@A
@G
@F
Nil
@
@
P Nil
Arbres binaires
 Parcours d’un arbre binaire : Préfixé
 Version Itérative de l’algorithme

Jusqu’à
Afficher (rac) rac = NIL
Empiler (p, rac)
Jusqu’à Rac ←rac↑.gauche
rac = NIL

@D
@D Dépiler (p, rac)
Rac ←rac↑.droite
@D
@D
@B
@E
@D
@H
@G
@D
@F
@A
@D
A B D E F G H
Rac @H
@G
Nil
@H
Nil
@E
@F
@G
@E
NIL
@B
Nil
Nil
@A
@B
@A
@D
P Nil
@
Arbres binaires
 Parcours d’un arbre binaire : Infixé
 Version récursive de l’algorithme

PROCEDURE Infixé (Racine : Arbre)


DEBUT
SI Racine <> NIL ALORS
Infixé (Racine↑.gauche) Traiter
(Racine)
Infixé (Racine↑.droite)
FIN SI
FIN
Arbres binaires
 Parcours d’un arbre binaire : Infixé
 Version Itérative de l’algorithme
FIN FAIRE PROCEDURE Infixé (Racine : Arbre)
Dépiler (p, rac) VAR
Traiter (rac) Rac : Arbre, p : Pile
Rac ←rac↑.droite DEBUT
FIN FAIRE Init_pile (p)
FIN Rac ←Racine
TANT QUE (rac <> NIL) ou (non Pile_vide
(p)) FAIRE
TANT QUE rac <> NIL FAIRE
Empiler (p, rac)
Rac ←rac↑.gauche
Arbres binaires
 Parcours d’un arbre binaire : Postfixé
 Version récursive de l’algorithme

PROCEDURE Postfixé (Racine : Arbre)


DEBUT
SI Racine <> NIL ALORS
Postfixé (Racine↑.gauche)
Postfixé (Racine↑.droite)
Traiter (Racine)
FIN SI
FIN
Arbres binaires
 Parcours d’un arbre binaire : Postfixé
 Version Itérative de l’algorithme
Dépiler (p, (Rac, indic)) PROCEDURE Postfixé (Racine : Arbre)
SI Indic = VRAI ALORS VAR
Empiler (p,(Rac,faux)) Rac : Arbre, p : Pile
Rac ←Rac↑.droite Indic : booléen
SINON DEBUT
Traiter (Rac) Init_pile (p)
Rac ← NIL Rac ←Racine
FINSI TANT QUE (rac <> NIL) ou (non Pile_vide
FIN FAIRE (p)) FAIRE
FIN TANT QUE rac <> NIL FAIRE
Empiler (p, (rac, vrai))
Rac↑.gaucheRac ←
FIN FAIRE
Arbres binaires
 Algorithmes sur les arbres binaires
 Calcul de la taille d’un arbre binaire

FONCTION Taille (Racine : Arbre) : entier


DEBUT
SI Racine = NIL ALORS
RETOURNER (0)
SINON
RETOURNER (1+Taille (Racine↑.gauche) + Taille (Racine↑.droite))
FIN SI
FIN
Arbres binaires
 Algorithmes sur les arbres binaires
 Nombre des feuilles d’un arbre binaire
FONCTION Feuille (Nœud : Arbre) : Booléen
DEBUT
RETOURNER ((Nœud↑.gauche = NIL) et (Nœud↑.droite = NIL))
FIN

FONCTION Nb_feuille (Racine : Arbre) : entier


DEBUT
SI Racine = NIL ALORS
RETOURNER (0)
SINON
SI Feuille (Racine) ALORS
RETOURNER (1)
SINON
RETOURNER (Nb_feuille (Racine↑.gauche) +Nb_feuille (Racine↑.droite))
FIN SI
FIN SI
FIN
Arbres binaires
 Algorithmes sur les arbres binaires
 Vérifier qu’un arbre n’est pas dégénéré

FONCTION Normal (Racine : Arbre) : booléen


DEBUT
SI Racine = NIL ALORS
RETOURNER (FAUX)
SINON
SI (Racine↑.gauche <> NIL) et (Racine↑.droite <>NIL) ALORS
RETOURNER (VRAI)
SINON
SI (Racine↑.gauche = NIL) ALORS
RETOURNER (Normal (Racine↑.droite))
SINON
RETOURNER (Normal (Racine↑.gauche))
FIN SI
FIN SI
FIN SI
FIN
Arbres binaires
 Algorithmes sur les arbres binaires
 Recherche associative dans un arbre binaire
FONCTION Recherche (Racine : Arbre, val : élément) : booléen
DEBUT
SI Racine = NIL ALORS
RETOURNER (FAUX)
SINON
SI Racine↑.info = val ALORS
RETOURNER (VRAI)
SINON
SI Recherche (Racine↑.gauche, val) ALORS
RETOURNER (VRAI)
SINON
RETOURNER (Recherche (Racine↑.droite, val))
FIN SI
FIN SI
FIN SI
FIN

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy