structures hi rarchiques arbre
Download
Skip this Video
Download Presentation
Structures hiérarchiques: Arbre

Loading in 2 Seconds...

play fullscreen
1 / 45

Structures hiérarchiques: Arbre - PowerPoint PPT Presentation


  • 226 Views
  • Uploaded on

Structures hiérarchiques: Arbre. Chapitre 04. Introduction. La structure d\'arbre est l\'une des plus importantes et des plus spécifiques de l\'informatique. Par exemple : représentation d\'une table de matières, d\'un questionnaire, d\'un arbre généalogique,… .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Structures hiérarchiques: Arbre' - brasen


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction
Introduction
  • La structure d\'arbre est l\'une des plus importantes et des plus spécifiques de l\'informatique. Par exemple :
    • représentation
      • d\'une table de matières,
      • d\'un questionnaire,
      • d\'un arbre généalogique,… .
    • Organisation des répertoires pour un système d’exploitation
    • Tri et recherche
    • Analyse des expressions arithmétiques
    • Arbre lexicographique
    • Arbre de raisonnement en Intelligence Artificielle
    • Arbre de programme utilisé en compilation
    • Arbre d’analyse syntaxique en compilation
d finition
Définition
  • On appelle arbre de type T, une structure formée d’une donnée particulière de type T appelée racine de l’arbre et d’un ensemble fini de taille variable, éventuellement vide, d’arbres de type T appelés sous-arbres de l’arbre. T étant le type de base des éléments de l’arbre.
d finition1
Définition
  • Définition informelleun arbre est un ensemble de nœuds organisé de façon hiérarchique tel que :
    • il existe un nœud unique appelé racine de l\'arbre qui n\'a pas de supérieur
    • tous les autres nœuds sont atteints à partir de la racine par une unique voie hiérarchique (une branche, un chemin)
  • Définition récursive (et constructive)un arbre est la donnée d\'une racine et d\'une liste (éventuellement vide) d\'arbres disjoints appelés sous-arbres

A = < r > ou < r, (A1, …An) > , Ai arbres disjoints

  • un nœud de l\'arbre est la racine d\'un sous-arbre
d finition2
Définition
  • Racine : C\'est le nœud qui n\'a pas de prédécesseur. La racine constitue la caractéristique d\'un arbre. Dans l\'exemple c\'est a
  • Fils d\'un noeud : ce sont ses successeurs. Dans l\'exemple, c, d et e sont les fils du nœud b.
  • Feuille : c\'est le nœud qui n\'a pas de successeur. Une feuille est aussi appelée un nœud externe. Dans l\'exemple, les feuilles sont : c, i, j, e, g et h. 
  • Nœud interne:c\'est tout nœud qui admet au moins un successeur. Dans l\'exemple, les nœuds internes sont : a, b, f et d. 
d finition3
Définition
  • Frères:ce sont les successeurs issus d\'un même nœud. Dans l\'exemple, c, d et e sont des frères.
  • Père:c\'est un nœud qui admet au moins un successeur. Dans l\'exemple, b est le père des nœuds c, d et e. 
  • Sous arbre:C\'est une portion de l\'arbre. Dans l\'exemple, le noeud f avec ces deux fils g et h constituent un sous arbre.
  • Descendants d\'un nœud:ce sont tous les nœuds du sous arbre de racine nœud. Dans l\'exemple, les descendants de h sont c, d, e, i et j.
d finition4
Définition
  • Ascendants d\'un nœud: ce sont tous les noeuds se trouvant sur la branche de la racine vers ce noeud. Dans l\'exemple, les ascendants de d sont b et a. Les ascendants de g sont f et a. 
  • Branche : Les ascendants d\'une feuille constituent une branche de l\'arbre. Dans l\'exemple, les branches de l\'arbre sont a-b-c, a-b-d-i, a-b-d-j, a-b-e, a-f-g et a-f-h. 
  • Degré d\'un noeud : C\'est le nombre de ses fils. Dans l\'exemple, le degré de b est 3. 
d finition5
Définition
  • Niveau d\'un noeud :On dit que la racine a le niveau 0, ses fils ont le niveau 1, les fils des fils ont le niveau 2. etc...  Dans l\'exemple, a est de niveau 0, d est de niveau 2 et j est de niveau 3.
  • Profondeur de l\'arbre : C\'est le niveau maximal des feuilles de l\'arbre. L\'arbre de l\'exemple est de profondeur 3.
  • Forêt : C\'est un ensemble d\'arbres.
d finition6
Définition
  • Taille d’un arbre: c’est le nombre de nœud de l’arbre. La taille de l’arbre en exemple est de 10.
  • Mot des feuilles: c’est la chaîne formée des valeurs des feuilles (nœuds terminaux) de l’arbre de gauche à droite. Dans l’exemple: « cijegh» est le mot feuille
d finition7
Définition
  • Arbre n-aire: lorsqu’un arbre admet pour chaque nœud n descendants au plus, il est dit n-aire (ou général). Les arbres généraux sont , dans la plus part du temps représentés en machine par les arbres binaires.
  • Arbre binaire: c’est un arbre d’ordre 2; chaque nœud admet au plus zéro, un ou deux fils appelés respectivement fils gauche et fils droit.
arbres binaires
Arbres Binaires
  • Dans ce qui suit, on s\'intéresse dans un premier temps aux arbres binaires. Les arbres n-aires d\'ordre n seront traités plus loin.
arbres binaires1

racine

SAG

SAD

Arbres Binaires
  • définition informelle
    • dans un arbre binaire tout nœud a au plus deux fils
    • un arbre binaire non vide possède exactement deux sous-arbres (éventuellement vides) gauche et droit.
  • définition récursive (et constructive)
    • Un arbre binaire est
      • soit vide
      • soit composé d\'une racine r et de deux arbres binaires SAG et SAD disjointsSAG : Sous-arbre binaire gaucheSAD : Sous-arbre binaire droit
arbres binaires description fonctionnelle
Arbres Binaires(Description fonctionnelle)

1. Primitives d’accès à un arbre binaire

2. Primitives de Mise à jour

3. Parcours d’un arbre binaire

arbres binaires description fonctionnelle1
Arbres Binaires(Description fonctionnelle)

1. Primitives d’accès à un arbre binaire

Dans un arbre binaire, un nœud est composé d’une valeur et de deux adresses repérant les sous-arbre gauche et le sous-arbre droit. Le nœud vide est représenté par « NIL».

V : Ensemble des valeurs.

P : Ensemble des positions (ou @ ) des nœuds de l’arbre)

arbres binaires description fonctionnelle2
Arbres Binaires(Description fonctionnelle)

L’accès aux valeurs des nœuds s’effectue à l’aide de la primitive:

Valeur : P-{Nil}  V

L’accès au sous-arbre gauche d’un nœud s’effectue à l’aide de la primitive:

Gauche : P-{Nil}  P

L’accès au sous-arbre droit d’un nœud s’effectue à l’aide de la primitive:

Droit : P-{Nil}  P

Ces primitives ne sont pas définies pour le nœud vide.

arbres binaires description fonctionnelle3
Arbres Binaires(Description fonctionnelle)

2. Primitives de Mise à jour:

On définit en plus trois primitives qui permettent la modification dans un arbre binaire (suppression, insertion et modification d’une valeur d’un nœud ), ces primitives sont:

AffValeur(position, valeur): affecte une valeur à un nœud d’@ position.

AffDroit(nœud, position): permet d’affecter une référence (position) au fils droit d’un nœud.

AffGauche(nœud, position): permet d’affecter une référence (position) au fils gauche d’un nœud.

arbres binaires description fonctionnelle4
Arbres Binaires(Description fonctionnelle)

3. Parcours d’un arbre binaire:

parcours : examiner les nœuds d’un arbre pour effectuer un traitement. 2 types de parcours classiques sur les arbres binaires en profondeur (récursif par nature) et en largeur (itératif par nature)

  • parcours en profondeur
    • algorithme récursif général
      • parcours préfixe, infixe, postface
  • parcours en largeur (par niveaux, hiérarchique) :
arbres binaires parcours pr fixe

A

B

D

C

E

Arbres Binaires(Parcours Préfixe )

1. Le Parcours Préfixé ou en préordre

  • Il consiste en :
    • l’énumération de la racine
    • l’énumération du sous-arbre gauche
    • l’énumération du sous-arbre droit.
  • RGD
  • Dans l’exemple: A B D C E
arbres binaires parcours infixe

A

B

D

C

E

Arbres Binaires(Parcours infixe )

2. Le parcours infixé ou en inordre

Il consiste en :

    • l’énumération du sous-arbre gauche
    • l’énumération de la racine
    • l’énumération du sous-arbre droit.
  • GRD
  • Dans l’exemple: B A C D E
arbres binaires parcours postfixe

A

B

D

C

E

Arbres Binaires(Parcours postfixe )

3. Le parcours postfixé ou en postordre

Il consiste en :

    • l’énumération du sous-arbre gauche
    • l’énumération du sous-arbre droit.
    • l’énumération de la racine.
  • GDR
  • Dans l’exemple: B C E D A
arbres binaires description fonctionnelle5
Arbres Binaires(Description fonctionnelle)

Procédure Préfixé( Entrée Racine:<type>);

Début

Si racine<>Nil AlorsEcrire (Valeur(racine));

Préfixé(Gauche(racine));

Préfixé(Droit(racine));

Fsi;

Fin;

arbres binaires description fonctionnelle6
Arbres Binaires(Description fonctionnelle)

Procédure Infixé( Entrée Racine:<type>);

Début

Si racine<>Nil AlorsInfixé(Gauche(racine));

Ecrire (Valeur(racine));

Infixé(Droit(racine));

Fsi;

Fin;

arbres binaires description fonctionnelle7
Arbres Binaires(Description fonctionnelle)

Procédure Postfixé( Entrée Racine:<type>);

Début

Si racine<>Nil Alors Postfixé(Gauche(racine));

Postfixé(Droit(racine));

Ecrire (Valeur(racine));

Fsi;

Fin;

arbres binaires impl mentation
Arbres Binaires(Implémentation)
  • Par tableau (cases contiguës)
  • Par cases chaînées
    • Par faux pointeurs
    • Par pointeurs
repr sentations contigu s 1
Représentations contiguës (1)
  • un arbre est un tableau où sont mémorisés les nœuds
  • La racine est le nœud d’indice 1
  • un nœud est une structure à 3

champs

    • l\'étiquette ( Valeur) du nœud
    • les indices de ses fils gauche et droit (ou -1 si pas de fils)
  • inconvénients
    • définition non récursive (arbre  sous-arbre)
    • utilisée uniquement si on traite un arbre unique
repr sentations contigu s 2

1

2

3

4

5

6

7

8

9

10

11

12

13

a

b

c

e

f

g

h

i

j

Représentations contiguës (2)

Un arbre est un tableau

  • L’étiquette de la racine est à l’indice 1
  • Si l’étiquette d’un nœud est à l’indice i

alors

l’étiquette du fils gauche est à l’indice 2i

et l’étiquette du fils droit est à l’indice 2i + 1

repr sentation par curseurs faux pointeurs
Représentation par curseurs (faux pointeurs)
  • utilisation d\'une variable globale de type tableau pour simuler la mémoire où sont mémorisés les nœuds
  • un arbre est l\'indice de sa racine dans le tableau (ou -1 s\'il est vide)
  • un nœud (une case du tableau) est une structure à 3 champs
    • l\'étiquette (valeur) du nœud
    • les indices de ses fils gauche et droit (ou -1 si pas de fils)
  • 2 stratégies de gestion des cellules disponibles
    • chaîner entre elles les cellules disponibles
    • marquer les cellules libres et parcourir le tableau pour trouver la 1re place libre
  • Inconvénient : connaître à l’avance le nombre de noeuds
exemples

a

b

c

d

e

f

g

Exemples

Mémoire

Mémoire

5

A1

A2

2

A1

A2

O arbre

2 arbres

repr sentation cha n e
Représentation chaînée
  • un arbre binaire est
    • soit un pointeur sur le nœud racine (arbre non vide)
    • soit le pointeur NIL (arbre vide)
  • un nœud est une structure à trois champs
    • une étiquette (Valeur)
    • le sous-arbre gauche et le sous-arbre droit
  • avantages
    • définition récursive
    • simple à programmer
    • la plus utilisée
repr sentation cha n e1
Représentation chaînée

inconvénients : consomme de la mémoire dynamique et elle est plus coûteuse en temps d’accès qu’une représentation contiguë, mais elle permet plusieurs types de parcours sans modification algorithmique importante.

exercices
Exercices
  • Ecrire le corps de chacune des primitives pour la manipulation d’un arbre binaire pour les différentes implémentations données ci-dessus.
quelques d f
Quelques déf.
  • Niveau
  • Complet
  • Ordonnée
  • Dégénéré
  • Equilibré
  • N-aire
  • ……………..sur tableau…………………..
arbre n aire planaire g n ral
Arbre n-aire(Planaire général)
  • Le nombre de fils de chaque nœud n’est pas limité à deux. La notion du gauche et droit pour les fils et les sous-arbres n’existe plus. Dans ce type d’arbres, les fils et les sous-arbres des nœuds sont ordonnés et on parle du premier fils, 2ème fils,… .
  • Le parcours d’un arbre n-aire est une extension du parcours des arbres binaires: en profondeur et en largeur.
repr sentation d un arbre n aire

indice

1

2

3

4

5

6

7

8

Valeur

a

b

c

d

e

f

g

h

père

0

1

1

1

1

2

5

5

Représentation d’un arbre n-aire
  • Il peut être représenter selon différentes représentations:
  • Représentation par tableau:
  • un arbre est un tableau qui contient la valeur d\'un nœud et l‘indice de son père.
  • représentation économique en mémoire, utilisée si l\'arbre n\'est jamais modifié
arbres par liste des fils
Arbres par liste des fils
  • un arbre est la donnée
    • de la valeur de sa racine
    • de la liste de ses fils représentée
      • par tableau,
      • par pointeurs
      • par curseurs

NIL

arbres par listes des fils tableau
Arbres par listes des fils : tableau
  • un arbre est un pointeur sur une structure composée de 2 champs :
    • un tableau de nœuds
    • indice de la racine dans le tableau
  • un nœud est une structure à deux champs
    • l\'étiquette de la racine
    • la liste de ses fils
  • la liste des fils est une liste simplement chaînée sans en-tête des indices dans le tableau des fils
    • la liste des fils est un pointeur sur une cellule à deux champs
      • un entier (l’ indice du nœud) dans le tableau
      • un pointeur sur la cellule suivante
arbres par liste des fils pointeurs
Arbres par liste des fils (pointeurs)
  • un arbre est un pointeur sur une structure formée
    • de la valeur de la racine
    • et de la liste de ses fils
  • une listes d\'arbres est un pointeur sur une cellule composée
    • d\'un arbre
    • et d\'un pointeur sur la cellule suivante.
arbres par tableau de pointeurs
Arbres par tableau de pointeurs
  • quand on connaît le nombre maximum de fils (n)
  • un arbre est un pointeur sur une structure à n + 1 champs
    • l\' étiquette de la racine
    • le premier sous-arbre, le deuxième... le nième
arbres g n raux par arbre binaire
Arbres généraux par arbre binaire
  • représentation par premier fils et frère droit
  • un arbre est représenté par une structure à trois champs
    • La valeur de la racine
    • le premier fils de la racine
    • le frère droit de la racine
  • tous les arbres n-aires peuvent être représentés par des arbres binaires
ad