Académique Documents
Professionnel Documents
Culture Documents
() ⇒ () : Soit T un graphe connexe et acyclique. Il est donc simple. Soient v, w dans la représentation graphique de l’arborescence (dont la racine est mise en
deux sommets de T. Comme T est connexe, il y a un chemin de v à w dans T haut). Il n’y a pas contre aucun moyen de distinguer la gauche de la droite.
et par la proposition .. il y a donc un chemin simple de v à w car T. Démon-
trons maintenant qu’il est unique : sinon on aurait deux chemins simples
v0 v0
distincts P1 et P2 de v à w ; ces chemins bifurqueraint en un sommet v 0 puis
éventuellement se rejoindraient pour une première fois en un sommet v 00 (v 00 v1 v3 v4 v4 v3 v1
étant le premier sommet de P1 après v 0 qui est dans P2 ) ; on aurait donc deux
chemins simples sans arêtes communes de v 0 à v 00 et par conséquent un cycle v2 v5 v5 v2
v8 v8
dans T. v6 v7 v6 v7
() ⇒ () : On démontre par induction sur le nombre n de sommets. Si n = 1
(un sommet), comme il ne peut pas y avoir de boucle dans T, T a arêtes. F IG . 1. Deux représentations de la même arborescence
Supposons le résultat vrai pour n et soit T un graphe acyclique connexe avec
n +1 sommets. Choisissions un chemin simple P = (v0 , v1 , . . . , vl ) de longueur
l maximale dans T. Notons e l’unique arête de T incidente à v0 et v1 . Le som- .. Terminologie. Il y a une riche terminologie qui apparaît dès que l’on fixe
met v0 de T est de degré ; sinon il existerait une arête e 0 incidente a v0 et à une racine pour une arborescence.
un autre sommet v 0 ; si v 0 était dans P alors on aurait un cycle dant T, et sinon
on aurait que (v 0 , v0 ) P est un chemin simple plus long que P d’où contra- Définition ... Si T est une arborescence de racine v0 et si (v0 , v1 , . . . , vr ) est
diction. Prenons maintenant v et w deux sommets de T différents de v0 ; il un chemin simple dans T alors
existe un chemin simple de v à w dans T et il ne peut pas passer par e sinon () r est la profondeur du noeud vr .
v0 serait de degré . Par conséquent le graphe T ∗ obtenu en enlevevant de T () La hauteur d’une arborescence est la profondeur maximale d’un de ses
le sommet v0 et l’arête e est connexe. Il est aussi acyclique et a n sommets. sommets.
Par hypothèse d’induction, T ∗ a n − 1 arêtes et donc T a n arêtes. () vr −1 est le parent (ou père) de vr
() ⇒ () : Supposons le contraire, i.e. que T est connexe avec n − 1 arêtes mais
() v0 , . . . , vr −1 sont les ancêtres de vr
non acyclique. Si un graphe T est connexe, on peut toujours lui enlever une
() Si x est parent de y alors y est l’enfant (ou fils) de x
arête quelconque figurant dans un cycle sans qu’il ne cesse d’être connexe.
() Deux sommets fils d’un même père sont dits frères
Procédant ainsi, on obtient finalement un sous-graphe T 0 de T connexe, acy-
clique de n sommets, qui a donc n − 1 arêtes. Si T 0 a n − 1 arêtes, il faut que T () On dit que x est une feuille si x n’a pas de fils.
en aie plus, d’où contradiction. () Un sommet qui n’est pas une feuille est dit interne.
() ⇒ () : Soient T1 , . . . , Tr les composantes connexes de T ; faut montrer que () On appelle sous-arbre de T de racine x l’arborescence de racine x dont le
r = 1. Notons ni le nombre de sommets de Ti . On a n1 + . . . + nr = n. D’autre graphe est le sous-graphe de T contenant x et ses descendants.
part let Ti sont connexes et sans cycle et donc, comme () ⇒ (), T i a ni − 1
Deux éléments x et y sont comparables par rapport à l’ordre induit par l’arbo-
arêtes ce qui fait qu’au total T a n1 − 1 + . . . nr − 1 = (n1 + . . . + nr ) − r = n − r
rescence s’ils sont égaux ou si l’un est l’ancêtre de l’autre. On représente sou-
arêtes. Or T a n − 1 arêtes par hypthèse, et donc r = 1.
vent une arborescence en mettant tous les sommets de même profondeur au
même niveau ; la racine vient en haut, les sommets de profondeur sont juste
3. L ES ARBORESCENCES en dessous, puis les sommets de profondeur viennent au dessous des som-
mets de profondeur et sont aussi au même niveau. Les sommets et les arêtes
.. Généralités. donnent l’impression d’un arbre avec la tête en bas.
Définition ... On appelle arborescence (« rooted tree » en anglais) un arbre
Exemple ... Dans l’arborescence de la F IG . les feuilles sont v2 , v3 , v6 , v7 et
muni d’un sommet v0 désigné comme racine.
v8 . Les noeuds internes sont v0 , v1 , v4 et v5 . Les noeuds de profondeur sont
La racine est donc un nouvel attribut ajouté à la structure d’arbre. Formelle- v1 , v3 et v4 , ceux de profondeur sont v2 , v5 et v8 alors que v6 et v7 sont de
ment, une arborescence est donc un couple 〈T, v0 〉 où T et un arbre et v0 un profondeur . Le noeud v0 a trois fils, à savoir v1 , v3 et v4 alors que v1 n’en
sommet de T. Alors que dans le cas général d’un arbre, il n’y a ni haut, ni bas, ni a qu’un, v2 . On a que v5 est père de v7 et l’ensemble des ancêtres de v7 est
gauche ni droite, le choix d’une racine induit une orientation sur le graphe qui {v0 , v4 , v5 } ; v3 a deux frères, v1 et v4 . Le sous-arbre de racine v4 contient les
part de la racine et va vers les feuilles et qui, généralement, va de haut en bas sommets v4 , v5 , v6 , v7 et v8 . L’arbre T est de hauteur .
ARBRES, ARBORESCENCES ET ARBORESCENCES BINAIRES MICHEL BOYER
v0
4. L ES ARBORESCENCES BINAIRES
.. Définitions. Une arborescence binaire est une arborescence qui, en plus v1 v3
d’avoir au plus deux fils par noeud, précise pour chaque fils présent dans l’ar-
v2 v4 v7
borescence si c’est le fils gauche ou le fils droit.
Remarque ... Tout sommet d’une arborescence binaire, sauf la racine, est v5 v8
donc un fils gauche ou droit. On peut représenter formellement ceci en asso-
v6 v9 v10
ciant à chaque arête l’étiquette ou , avec la contrainte que les arêtes joignant
un père v à deux fils doivent avoir des étiquettes distinctes. On peut convenir
que l’arête d’étiquette descend vers la gauche et celle d’étiquette descend F IG . 2. Une arborescence binaire.
vers la droite.
gauche étant étiquetée et l’arête droite étant d’étiquetée . Le chemin par-
Définition ... Une arborescence binaire entière (full binary tree) est une ar-
couru en utilisant l’algorithme ci-dessus avec l’arborescence binaire de la F IG .
borescence binaire dont tout sommet interne a deux fils.
est
Les arborescences de fouille binaires sont très utilisés pour implanter des tables (v0 , v1 , v2 , v1 , v0 , v3 , v4 , v5 , v6 , v5 , v4 , v3 , v7 , v8 , v9 , v8 , v10 , v8 , v7 , v3 , v0 )
qui associent à des clés un enregistrement. À chaque sommet on associe une
clé. En chaque sommet de l’arbre les clés du sous-arbre gauche du sommet A ce chemin sont associés trois « parcours » qui ajoutent à la promenade l’acti-
sont inférieures à la clé du sommet qui est elle-même inférieure à toutes les vité suivante : traiter l’information associée au noeud courant au moment op-
clés du sous-arbre droit du sommet. portun. Le moment opportun est la première fois qu’on visite le noeud dans le
parcours dit « préfixe », la dernière fois qu’on visite le noeud dans le parcours
.. Parcours d’arborescences binaires. On introduit dans les cours de pro- dit « postfixe » et pour le parcours infixe, c’est plus difficile de dire en mots. De
grammation, et on mentionne encore dans les cours de structures de données, façon plus précise, on traite le noeud courant avant d’exécuter le si de la ligne
les parcours dits préfixes, infixes et postfixes d’une arborescence binaire. Tous correspondante (avant de monter ou de descendre l’arête) :
ces parcours suivent en fait le même chemin (au sens de la théorie des graphes), préfixe : en () si on n’a pas encore traité le sommet
la différence étant simplement le moment où l’on traite l’information contenue
infixe : en () si on n’a pas encore traité le sommet
dans les sommets. Le chemin suivi part de la racine et, tant qu’il le peut
postfixe : en () et en ()
() si (il y a une arête à gauche et on ne l’a jamais descendue) on la descend
Si l’on souligne le sommet au moment où l’on traite l’information qui lui est
() sinon si (il y a une arête à droite et on ne l’a jamais descendue) on la
associée lors de la promenade, alors on obtient ce qui suit :
descend
() sinon si (on n’est pas à la racine) on remonte l’arête préfixe (v0 , v1 , v2 , v1 , v0 , v3 , v4 , v5 , v6 , v5 , v4 , v3 , v7 , v8 , v9 , v8 , v10 , v8 , v7 , v3 , v0 )
() sinon on termine infixe (v0 , v1 , v2 , v1 , v0 , v3 , v4 , v5 , v6 , v5 , v4 , v3 , v7 , v8 , v9 , v8 , v10 , v8 , v7 , v3 , v0 )
postfixe (v0 , v1 , v2 , v1 , v0 , v3 , v4 , v5 , v6 , v5 , v4 , v3 , v7 , v8 , v9 , v8 , v10 , v8 , v7 , v3 , v0 )
En chaque sommet (sauf la racine) il y a une et une seule arête qu’on peut re-
monter et l’on va répéter () jusqu’à ce que l’on trouve un sommet avec une Dans les manuels, on ne liste en général que les noeuds soulignés, c’est-à-dire
arête droite qui n’a jamais été descendue ; s’il n’y en a pas on termine et celà la séquence de traitement de l’information. On présente presque partout des
se passe toujours à la racine. Cet algorithme itératif est facile à simuler sur pa- algorithmes récursifs, très courts et faciles à implanter.
pier ; il est par contre délicat d’implantation si l’on veut être efficace (on n’en
retrouve une variante que dans les livres avancés de structure de données) mais .. Arborescence binaire d’une somme de n termes. On peut représenter une
ceci est sans importance compte tenu des objectifs du IFT . somme de n termes complètement parenthésée par un arborescence binaire
entière avec n feuilles. La somme 1 + 2 + 3 n’est pas parenthésée. Elle peut être
Dans une section ultérieure, nous allons utiliser ce chemin ou cette « prome- complètement parenthésée de deux façons à savoir (1 + 2) + 3 et 1 + (2 + 3). Une
nade » pour faire sortir les étiquettes sur les arêtes dans un ordre adéquat, l’arête somme de termes a parenthésages possibles et on peut démontrer qu’en
général la somme de n termes a Cn−1 parenthésages, où Cn−1 est le n − 1 ième
De fait, quand on vient de remonter d’un fils gauche, inutile de tester () et quand on vient de nombre de Catalan à savoir C(2n − 2, n − 1)/n. Par exemple, pour n = 4 on ob-
remonter d’un fils droit inutile de tester () et (). tient C3 = C(6, 3)/4 = 20/4 = 5.
ARBRES, ARBORESCENCES ET ARBORESCENCES BINAIRES MICHEL BOYER
À chaque parenthésage correspond un arborescence binaire entière avec les n Démonstration. Comme h est un entier, ceci revient à prouver que lg f ≤ h et
feuilles 1, . . . , n et réciproquement. L’arbre d’une expression S complètement donc f ≤ 2h qu’on prouve par induction sur la hauteur h. Si h = 0, l’arbre T n’a
parenthésée se construit comme suit : qu’un sommet qui est une feuille et on a bien 1 ≤ 20 . Supposons le résultat vrai
quand la hauteur est au plus h et démontrons qu’il est vrai quand la hauteur est
Entrée: Une somme S complètement parenthésée des n entiers à n au plus h + 1. Suffit de considérer la hauteur h + 1. Si la hauteur est h + 1, et si
Sortie : Une arbrescence binaire entière qui représente S v0 est la racine, les sous-arbres à gauche et à droite de v0 sont soit vides, soit de
BinTree(S); hauteur au plus h ; par hypothèse d’induction ils ont au plus 2 h feuilles ce qui
begin
fait au total au plus 2h + 2h = 2h+1 feuilles pour T.
if S is the integer k then return tree with single node and root k;
else if S is of the form S 1 + S 2 then 5. I SOMORPHISMES
T1 ← BinTree(S 1 );
T2 ← BinTree(S 2 ); .. Introduction. Deux arbres sont isomorphes si l’un s’obtient de l’autre par
v0 ← new node; renommage des sommets. Il faut considérer de façon séparée le cas des arbres,
put root of T1 as the left child of v0 ; des arborescences et des arborescences binaire car la notion d’égalité diffère.
put root of T2 as the right child of v0 ; Il n’y a par exemple qu’un seul arbre avec deux sommets v et v 0 . Il y a deux
return the resulting tree with root v0 and subtrees T1 and T2 ;
arborescences avec ces mêmes sommets v et v 0 , l’une ayant v comme racine,
end
l’autre ayant v 0 comme racine (elles sont cependant isomorphes). Enfin, il y a
end
arborescences binaires ayant v et v 0 comme racines ; en effet, pour chaque
arborescence, on a deux choix de positions pour la feuille : on peut la mettre à
En pratique, on dénote les noeuds internes avec des + (en étiquetant les noeuds gauche ou à droite.
avec +, ×, ÷ etc, on peut traiter des expressions plus compliquées que de simples
.. Isomorphismes d’arbres. Deux arbres sont isomorphes si et seulement si
sommes). L’arbre pour l’expression (1 + 2) + ((3 + 4) + 5) est donc donné par la
ils sont isomorphes en tant que graphes. La notion d’isomorphie d’arbres est
F IG . .
donc exactement celle du chapitre sur les graphes. Comme il s’agit de graphes
simples, rappelons que dans le cas d’un graphe simple un isomorphisme de G
+
à G0 est un bijection f : V → V 0 entre les sommets de G et G0 telle que v, v 0 soient
adjacents dans G si et seulement si f (v), f (v 0 ) sont adjacents dans G0 : c’est une
+ bijection qui préserve la relation d’adjacence, rien de plus.
+ +
.. Isormorphes d’arborescences. Un isomorphisme d’arborescences entre T
de racine v0 et T0 de racine v00 est un isomorphimes f entre les graphes T et T 0
tel que f (v0 ) = v00 ; en plus de préserver l’adjacence, f doit aussi préserver la
F IG . 3. Arborescence binaire de l’expression (1 + 2) + ((3 + 4) + 5) racine.
... Propriétés invariantes. Comme un isomorphimes d’arborescence préserve
l’adjacence et la racine, on a que (v0 , v1 , . . . , vr ) est un chemin simple dans T si
.. Propriétés importantes des arborescences binaires. et seulement si ( f (v0 ), f (v1 ), . . . , f (vr )) est un chemin simple dans T 0 et donc, si
Théorème ... Si une arborescence binaire entière T a i sommets internes, f : T → T0 est un isomorphisme
alors elle a i + 1 feuilles et, ce qui revient au même, 2i + 1 sommets. () T et T0 ont même hauteur.
() x est une feuille de T ssi f (x) est une feuille de T 0 .
Démonstration. Il y a 2i sommets qui sont fils d’un sommet interne et tout () T et T0 ont même nombre de feuilles.
sommet sauf la racine est fils d’un sommet interne ; il y a donc au total 2i + 1 () y est fils de x ssi f (y) est fils de f (x)
sommets dans l’arbre et (2i + 1) − i = i + 1 feuilles. () La profondeur de x dans T est égale à la profondeur de f (x) dans T 0 .
() Il y a même nombre de sommets de profondeur r dans T que dans T 0 .
Théorème ... Si une arborescence binaire T a f feuilles et est de hauteur h
alors La liste est encore longue. Un isomorphisme d’arborescences préserve donc
des propriétés qu’on ne peut même pas définir dans le cas des arbres généraux :
dlg f e ≤ h profondeur, hauteur, fils etc.
ARBRES, ARBORESCENCES ET ARBORESCENCES BINAIRES MICHEL BOYER