Contenus
ToggleArbres et arboresences
Les arbres et arborescences sont des graphes particuliers souvent utilisés pour représenter l’aide à la décision, des données, ou pour le calcul de la complexité.
Terminologie
Par exemple, les calculateurs organisent les expressions mathématiques en fonction de la priorité des opérateurs et de leur profondeur : (y/2 – x)*(75+z) sera représenté par <*,<-,,>,>,<+,,>>. L’opération se fait alors par un parcours particulier de l’arbre :
- les descendants d’un nœud sont les nœuds de ses sous-arbres;
- un ancêtre d’un nœud est soit son père, soit un ancêtre de son père;
- le chemin d’un nœud à la racine est constitué de tous ses ancêtres;
- le frère d’un nœud est un fils de son père autre que lui-même.
Un arbre est souvent représenté par un graphe pour faciliter la lecture :
Les nœuds d’un arbre se répartissent par profondeurs (ou niveaux). La profondeur 0 contient uniquement la racine, la profondeur 1 ses fils etc. La hauteur d’un arbre est le nombre de profondeurs, ou la taille du plus grand chemin d’un nœud à la racine.
Définition : théorie des graphes
Étant donné un graphe non orienté comportant n sommets, les propriétés suivantes sont équivalentes :
- Le graphe est connexe et sans cycle,
- Le graphe est sans cycle et possède n-1 arêtes,
- Le graphe est connexe et admet n-1 arêtes,
- Le graphe est sans cycle, et en ajoutant une arête, alors on crée un et un seul cycle élémentaire,
- Le graphe est connexe, et en supprimant une arête quelconque il n’est plus connexe,
- Il existe une chaîne et une seule entre toutes paires de sommets.
Une arborescence est un graphe orienté sans circuit admettant une racine telle que pour tout autre sommet il existe un chemin unique de la racine vers ce sommet. Une arborescence possède des propriétés similaires à l’arbre.
Arbre binaire
Déterminons le nombre total de feuilles et de nœuds d’un arbre binaire complet.
À la profondeur 0, il y a une feuille, la racine. Supposons que l’arbre binaire complet possède 2(h-1) feuilles à la hauteur h. Alors, à la hauteur h+1, chacune de ces feuilles devient un nœud avec deux fils, on a donc un nombre de feuilles de 2*2(h-1) = 2h. CQFD.
De plus, le nombre de nœuds du graphe binaire complet est égal à la somme du nombre de feuille des arbres binaires complets de hauteur inférieure. On en déduit que le nombre total de nœud est ∑(i=0)(h-1) 2i = 2h -1. Réciproquement, si un graphe binaire complet possède n nœuds, alors sa hauteur est d’après la formule précédente log2 (n)+1. On en déduit qu’un arbre binaire quelconque est au moins de hauteur log2 (n) +1.
L’indicateur sur les sommets indique la différence entre la hauteur du sous-arbre gauche et la hauteur du sous-arbre droit.
Lorsque l’arbre est déséquilibré, il faut alors permuter les sommets parents et la racine tout en conservant l’ordre des sous-arbres (voir la suite sur les arbres de recherche).
Nous pouvons agrandir la définition sur les arbres de degré supérieur (arbre ternaire etc). Seul le coefficient 2 est modifié en fonction du nombre de fils définis par le type d’arbre.
Arbre de recherche
Un arbre de recherche est une structure de données permettant de représenter un ensemble de valeurs si l’on dispose d’une relation d’ordre sur ces dernières. Les opérations standards sur les arbres de recherche sont : l’insertion, la suppression ou la recherche d’une valeur. Ces opérations sont peu coûteuses si l’arbre est équilibré. Afin de faciliter la compréhension, nous travaillerons sur des arbres binaires de recherche (ABR).
La valeur la plus petite est le dernier descendant gauche de la racine, et la plus grande est le dernier descendant droit de la racine. D’autres critères logiques peuvent être déduits de la définition :
Les trois actions se font alors grâce à des parcours de l’ABR.