Structures hi rarchiques arbre
This presentation is the property of its rightful owner.
Sponsored Links
1 / 45

Structures hiérarchiques: Arbre PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on
  • Presentation posted in: General

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,… .

Download Presentation

Structures hiérarchiques: Arbre

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


Structures hi rarchiques arbre

Structures hiérarchiques: Arbre

Chapitre 04


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


Introduction exemple

Introduction (exemple)


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


    Tableau de pointeurs sur liste des fils

    Tableau de pointeurs sur liste des fils


    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.


    Arbre par liste des fils

    Arbre par liste des fils


    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


    Arbres g n raux par arbre binaire1

    Arbres généraux par arbre binaire

    NIL

    NIL

    NIL

    NIL

    NIL


    Quivalence arbre g n ral arbre binaire

    1

    2

    3

    5

    4

    6

    9

    7

    8

    10

    13

    11

    14

    12

    Équivalence arbre général/arbre binaire


    Un autre exemple

    Un autre exemple


  • Login