précédent | suivant | table des matières

Structure d'arbre

Sommaire
  1. Définitions
  2. Propriétés
  3. Représentation des arbres N-aires
  4. Représentation des arbres binaires

1 Définitions.

      Graphe orienté.

Un graphe orienté est défini par le couple (N, A) :

Un graphe orienté peut être considéré comme une représentation d'une relation binaire R sur l'ensemble N : 

Soient a et b appartenant à N alors : aRb ⇔  ∃x ∈ A et x = ab

      Graphe non orienté

Un graphe est non orienté, si on ne distingue pas le sommet de départ et le sommet d'arrivée.

      Successeur, prédécesseur

La relation successeur est une application de N dans l'ensemble (N), ensembles des parties de N, qui à tout n appartenant à N associe l'ensembles des a appartenant à N tels que na appartient à A.

La relation prédécesseur est une application de N dans l'ensemble (N), ensemble des parties de N, qui à tout n appartenant à N associe l'ensembles des a appartenant à N tels que da appartient à A.

      Chaîne, cycle, chemin, circuit

Une chaîne est une séquence d'arêtes {a1, ... ak} telle que pour tout i de 1 à k-1 les arêtes ai et ai+1 ont une extrémité commune. Un cycle est une chaîne telle que a1 et akont une extrémité commune.

Un chemin est une séquence d'arêtes {a1, ... ak} telle que pour tout i de 1 à k-1 les arêtes ai et ai+1 ont une extrémité commune, cette extrémité étant de type arrivée pour ai et départ pour ai+1. Un circuit est un chemin tel que a1 et ak ont une extrémité commune, cette extrémité étant de type arrivée pour ak et départ pour a1.

La longueur du chemin, chaîne, circuit ou cycle est le nombre d'arêtes formant ce chemin, chaîne, circuit ou cycle.

      Racine

Un graphe admet une racine r si pour tout n appartenant à N il existe un chemin de r à n. Un graphe sans circuit qui admet une racine, en admet une seule.

      Connexe

Un graphe est connexe si et seulement si ∀( n1, n2) ∈N×N, ∃ une chaîne de n1 à n2.

      Arbre

Un arbre est un graphe connexe sans cycle et muni d'une racine.

Une structure d'arbre induit une partition sur l'ensemble des noeuds de l'arbre :

  1. Il y a dans N un noeud r appelé la racine. La racine est le point d'arrivée d'aucune arête.
  2. Les autres noeuds, s'il y en a, sont partitionnés en m sous ensembles N1, N2, ... Nm disjoints, qui sont eux mêmes des arbres de racines r1, r2, ..., rm. Ces marbres sont appelés sous-arbres de la racine.

Cette définition peut s'écrire de la façon suivante :
      A→∅
      A→ <r , A1, A2, ... An>

exemple :

N=(A,B,C,D,E,F,G,H,I,J,K).
  • La racine de l'arbre est A.
  • m=4
  •  r1=B, r2=C, r3=D, r4=E.
  •  N1=(B,H) N2=(C,F,G) N3=(D,I,J,K) N4=(E).
arbre

Cet arbre peut être représenté sous forme indentée :

A
    B
         F
   C
         G
   D
         I
                 K
        J
   E

Il peut être aussi représenté sous forme parenthésée : (A (B (F), C( G ), D(I(K), J),E ))

      Ascendance, Descendance

Soit n1,n2, ... nk k noeuds d'un arbre tels que : ∀i, 1ik on a ni  = prédécesseur(ni+1). 

Une telle suite est appelée chemin entre le noeud n1 et le noeud nk. La longueur du chemin est égale au nombre d'arêtes, c'est à dire au nombre de noeuds - 1.

S'il existe un chemin du noeud a vers le noeud b on dit que a est un ascendant de b, ou que b est un descendant de a.

      Hauteur, profondeur, niveau

La hauteur d'un noeud est la longueur du plus long chemin de ce noeud aux feuilles qui en dépendent plus 1 : c'est le nombre de nœuds du chemin. La hauteur d'un arbre est la hauteur de sa racine. L'arbre vide a une hauteur 0, et l'arbre réduit à une racine a une hauteur 1.
La profondeur d'un noeud dans un arbre est le nombre de noeuds du chemin qui va de la racine à ce noeud. La racine d'un arbre est à une profondeur 1, et la profondeur d'un noeud est égale à la profondeur de son prédécesseur plus 1. Si un noeud est à une profondeur p, tous ses successeurs sont à une profondeur p+1.

Tous les noeuds d'un arbre de même profondeur sont au même niveau.

      Feuille, Noeud interne

Une feuille ou noeud terminal est un noeud qui n'a pas de successeur.

Tout noeud d'un arbre qui n'est pas une feuille est un noeud interne.

      Forêt

Nous appellerons forêt un ensemble ordonné d'arbres.

Remarque : les sous-arbres d'un noeud dans un arbre ordonné, forment une forêt.

      Arbre n-aire

Un arbre est un arbre n-aire si tous les noeuds de l'arbre ont au plus n successeurs.

      Arbre binaire

Un arbre est un arbre binaire, si tout noeud de l'arbre a 0, 1, ou 2 successeurs. Ses successeurs sont alors appelés respectivement successeur gauche et successeur droit. Lorsque tous les noeuds d'un arbre binaire ont deux ou zéro successeurs nous dirons que l'arbre binaire est homogène. Un arbre binaire est arbre binaire dégénéré si tous ses noeuds n'ont qu'un seul descendant.

Un arbre binaire complet est un arbre binaire tel que chaque niveau de l'arbre est complètement rempli. Un arbre binaire complet de hauteur h contient donc 2h-1 nœuds, et son nombre de feuilles est : Fh = 2h-1.

On commence par calculer le nombre de feuilles d'un arbre binaire complet. La démonstration se fait par récurrence :

  1. F1 = 1 = 21-1.
  2. Supposons que Fh = 2h-1 jusqu'au rang h. Alors Fh+1 = 2×Fh = 2×2h-12h .
On peut alors calculer le nombre de noeuds d'un arbre binaire complet :
  1. N0 = 0 
  2. Nh = Nh-1 + Fh pour h≥1 

Soit Nh = F1 + F2 + ...+ Fh  = 1+2+ ...+2h-1Σi=0 h-12i = 2h-1

Un arbre binaire parfait est tel que tous les niveaux sauf éventuellement le dernier sont remplis, et dans ce cas les feuilles du dernier niveau sont groupées à gauche.
Un arbre binaire parfaitement équilibré est un arbre binaire complet dont les noeuds de l'avant dernier niveau peuvent n'avoir qu'un seul descendant.
Un arbre binaire est localement complet si tous les noeuds qui ne sont pas des feuilles ont deux fils.
Un arbre binaire étendu est un arbre binaire dans lequel nous remplaçons tout descendant vide par un noeud spécial noté Noeud étendu.

Exemple :

Arbre sans noeud étendu Est étendu en : arbre avec naouds étendus

On démontre facilement par récurrence sur le nombre n de noeuds de l'arbre initial que le nombre C de noeuds étendus est tel que : C = n + 1

  1. La propriété est vraie pour n=1.
  2. Supposons la vraie jusqu'au rang n-1 et soit A=<x, A1, A2> alors A1 et A2 sont deux arbres ayant au plus n-1 noeuds. Donc C1=n1+1 et C2=n2+1. Nous avons alors : C = C1+C2 = n1+1+n2+1 =n+1

Le cheminement interne d'un arbre binaire est la somme, pour tous les noeuds de l'arbre, des profondeurs des noeuds. C'est la somme des profondeurs de tous les noeuds de l'arbre. Dans l'exemple précédent le cheminement interne est égal à 8.
Le cheminement externe d'un arbre binaire est la somme, pour tous les noeuds de l'arbre binaire étendu, des longueurs des chemins de la racine à ce noeud. C'est la somme des profondeurs des noeuds . Dans l'exemple précédent le cheminement externe est égal à 17.

Ces deux quantités sont liées respectivement au coût de la recherche avec succès et sans succès d'un noeud dans un arbre binaire. Le cheminement interne divisé par n (le nombre de recherches) est le coût moyen de recherche d'un noeud présent dans un arbre binaire ordonné. Le cheminement externe divisé par n est le coût moyen de recherche pour un noeud non présent dans un arbre binaire ordonné.

On démontre par récurrence sur le nombre de noeuds que si E est le cheminement externe et I le cheminement interne : E = I + 2×n + 1

  1. pour N=1, I1=1 et E1=4=I1+2+1
  2. Supposons la propriété vraie jusqu'à l'ordre n : En = In + 2×n + 1
     Lorsque nous ajoutons un noeud à l'arbre initial, le nombre de noeuds est augmenté de 1, le nombre de noeuds Noeud étendu augmente de 1 également.
    Soit C la longueur du chemin de la racine au noeud que nous venons d'ajouter à l'arbre ;
    nous avons les relations : 
    D'où nous tirons : En+1 - In+1 = En - In + 2
    Soit En+1 = In+1 + 2×(n + 1) + 1

2 Propriétés.

        Propriété 0.

Soit un arbre binaire de n noeuds et de f feuilles. On a : f≤(n+1) /2

  1. la propriété est vraie pour n=1;
  2. supposons la propriété vraie jusqu'au rang n-1 : Un arbre de n noeuds est constitué de la façon suivante <a, B1, B2> et B1 et B2 ont au maximum n-1 noeuds. Nous avons donc pour chacun de ces arbres : f1≤(n1+1)/2 et f2≤(n2+1)/2
    n=n1+n2+1 et f=f1+f2≤(n1+n2+2)/2=(n+1)/2.

        Propriété 1.

Un arbre binaire ayant n noeuds a une hauteur h telle que : log2(n+1) ≤ h ≤ n

        Propriété 2.

Tout arbre binaire ayant f feuilles a une hauteur supérieure ou égale à log2(f). La fonction logarithme est croissante donc log2(f) ≤ log2((n+1)/2)

soit 1+ log2(f) ≤ log2(n+1)

1 + log2(f) ≤  log2(n+1) = 1 + log2(n)

        Propriété 3.

Le cheminement interne I d'un arbre binaire de n noeuds est : (n+1) × (log2(n+1) - 1) +1 ≤  I ≤ n(n-1)/2

3 Représentation des arbres N-aires.

Les arbres N-aires sont représentés en utilisant deux liens : un lien horizontal et un lien vertical.

Exemple : arbre n-aire

Un arbre N-aire est donc représenté comme un arbre binaire.

4 Représentation des arbres binaires.

4.1 Représentation contigüe.

Les noeuds de l'arbre sont rangés dans un tableau à une dimension ; les successeurs gauche et droit du noeud de l'arbre représenté à l'indice I dans le tableau, sont représentés respectivement dans les élément d'indice 2*I +1 et 2*(I + 1) , et la racine est à l’indice 0.

L'arbre :

arbre binaire
Est représenté par : 

10 11 12 13 14
a b c e f g h i j

Un arbre binaire parfait  a une représentation compacte sans trous dans le tableau:

arbre binaire parfait 


10 11 12 13 14
a b c d e f g h i    

4.2 Représentation chaînée.

Pour représenter les arbres de façon chaînée nous utilisons une classe Nœud qui contient 3 champs : un champ pour représenter l’information liée au nœud, et deux champs pointeurs vers les sous-arbres droit et gauche.

haut de la page