Arbres page 1
Lycée Faidherbe, Lille
MP1
Cours d’informatique
2013–2014
Arbres de données
I Homogènes .............................. 2
Introduction 2 Définition 2 Exemples 3 Implémentation 3 Arbres
comme graphes 4
II Hétérogènes ............................. 5
Introduction 5 Implémentation 5
III Binaires ................................ 6
Définition 6 Implémentation 6 Fonctions élémentaires 7 Dénom-
brements 7 Encombrement 8 Arbres parfaits 8 Arbre équilibré 9
Parcours 10
IV Exercices ............................... 12
Exemple 12 Longueur de cheminement 12 Arbres de Fibonacci 12
Symétrisation 12 Hiérarchie 13 Reconstruction d’un arbre 13 Re-
présentation binaire 13 Parcours en largeur 13 Profondeur minimale 14
Tas 14
page 2 Arbres
I Homogènes
I.1 Introduction
Une structure est arborescente quand, à chaque élément, on associe d’autres élé-
ments de manière hierarchique :
fils
descendants
sous–ensembles
. . .
Le modèle, qui a donné le nom, est celui d’un arbre où les branches se divisent en
d’autres branches.
On suppose que le nombre d’éléments est fini et qu’il n’existe pas de cycle . Il existe
alors au moins un élément qui n’est le descendant d’aucun autre.
On appellera arbre une structure dans laquelle il ny a qu’un seul tel élément : la
racine. Comme il n’existe pas de cycle chaque élément est associé à la racine par
un nombre fini de dépendances.
Contrairement à la vision de la nature les arbres sont représentés à l’envers.
I.2 Définition
Un arbre non vide est un ensemble fini d’objets : les nœuds liés par une relation n
est le fils de m ou m est le père de n telle que
Arbres page 3
il existe un unique élément sans père : la racine
tout élément, sauf la racine, a un père unique
tout élément est descendant de la racine.
Un nœud sans fils est une feuille de l’arbre ou nœud externe ; les autres sont les
nœuds internes.
L’ensemble des nœuds qui sont les descendants d’un nœud n0forme un arbre dont
n0est la racine: c’est le sous–arbre de racine n0.
Un arbre peut donc être défini récursivement comme
soit l’arbre vide
soit un ensemble d’arbres fils d’une racine.
L’ensemble des fils n’est pas, dans ce cas général, ordonné.
I.3 Exemples
Arbre généalogique
Plan du cours d’informatique
Informatique en MP
arbres
binaires ABR
complexité langages
rationnels automates
AFD AFND
I.4 Implémentation
Pour définir le type “arbre” on va introduire une définition récursive : un arbre est
un nœud associé à une liste d’arbres.
type ’f arbre = Noeud of ’f * (’f arbre list);;
page 4 Arbres
let a = Noeud (4,[]);;
let b = Noeud (5,[]);;
let c = Noeud (2,[]);;
let d = Noeud (3, [a;b;c]);;
val d : int arbre = Noeud (3, [Noeud (4, []); Noeud (5, []); Noeud (2, [])])
I.5 Arbres comme graphes
On peut aussi considérer les arbres comme des ensembles de sommets (les noeuds)
liés par des arêtes avec une hierarchie : ce sont des notions de graphe.
Il y a un sommet particulier : la racine.
Il y a toujours un chemin entre deux sommets.
Ce chemin est unique si on exclut les arêtes parcourures dans les deux sens.
Un arbre est un graphe (non orienté) connexe et acyclique avec
un sommet privilégié (s’il est non vide).
Connexe signifie qu’il y a toujours un chemin entre deux sommets.
Acyclique signifie qu’il ny a pas de circuit c’est–à–dire de chemin non trivial
entre un sommet et lui–même.
Si on se donne un tel graphe la racine est le sommet privilégié.
Pour tout sommet il a un chemin unique entre la racine et ce sommet (sinon il y
aurait un cycle).
Le père d’un sommet distinct de la racine est l’avant dernier sommet dans ce
chemin.
Les fils d’un sommet ssont les sommets extrémités d’une arête d’origine sà
l’exclusion du père : on nobtient jamais ni la racine ni un nœud qui aurait un
autre père en raison de l’acyclicité.
Arbres page 5
II Hétérogènes
II.1 Introduction
On peut aussi imaginer un arbre comme la description d’une formule.
Dans ce cas il y a deux types d’objets
des objets initiaux ou atomiques : dans l’arbre ils seront représentés aux extré-
mités, ce sont les feuilles
des assemblages effectués par des opérations sur des objets déjà construits, ce
sont les nœuds de l’arbre.
Exemple : représentation par un arbre de
5×(2 e3)+(2 ×sin(π)
+
×
5
2exp
3
×
2sin
π
II.2 Implémentation
On voit en fait qu’il y a plusieurs types de nœuds qui diffèrent selon leur arité, le
nombre de variables qu’ils modifient.
En général il ny a que des opérateurs binaires : ,ou,×,. . . ou unaires : complé-
mentaire, non,ln, ...
type (’f,’n) arbre2 = Feuille of ’f
|Noeud1 of (’n * (’f,’n) arbre2)
|Noeud2 of ((’f,’n) arbre2 * ’n *(’f,’n) arbre2);;
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!