Structures hi rarchiques arbre
Download
1 / 45

- 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 '' - 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



    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