Questions / réponses

Arbres parfaits

Arbres parfaits

Benjamin Castet -
Vastausten määrä: 2

Bonjour, après avoir fais ma fonction is_perfect, j'ai constaté qu'un arbre vide était parfait. Or, un arbre parfait a un nombre de noeuds qui vaut 2**n+2**n-1.....+1, n étant la hauteur de l'arbre. Cependant, un arbre vide a une hauteur qui vaut -1, meme si il s'agit d'une valeur arbitraire l'arbre vide ne peut pas avoir une hauteur valant 0, car c'est le cas de l'arbre Bin(x,Empty,Empty). Son nombre de noeuds est 0. Ainsi, l'arbre vide n'a pas le nombre de noeuds d'un arbre parfat car 2**n est strictement supérieur à 0. 

D'ou ma question : est-ce une simple convention ou existe-t'il une démonstration mathématique comme quoi l'arbre vide est parfait?

Vastaus Benjamin Castet

Re: Arbres parfaits

Philippe Duchon -

C'est une convention de toute manière...

Mais si on veut utiliser le fait qu'un arbre non vide est parfait si et seulement si les deux sous-arbres de la racine sont parfaits et de même hauteur, alors il faut soit déclarer que l'arbre vide est parfait, soit traiter à part le cas d'un arbre réduit à sa racine (puisque ses deux sous-arbres sont, précisément, vides).

Par ailleurs, la définition originale d'un arbre parfait, c'est celle d'un arbre dont tous les noeuds sont d'arité 0 ou 2, et dont toutes les feuilles sont à la même profondeur. Donc, ultimement, "un arbre est parfait si et seulement si tous ses noeuds satisfont une certaine condition" (en fait non: tous ses noeuds satisfont une certaine condition, et toutes ses paires de noeuds satisfont une certaine autre condition). Comme l'arbre vide n'a aucun noeud, il satisfait automatiquement cette définition (une formule universelle [quelque soit x] sur l'ensemble vide est automatiquement vraie).

Bref, la définition est un peu arbitraire, mais c'est dans tous les cas plus simple de déclarer parfait l'arbre vide. Si on voulait déclarer non parfait l'arbre vide, il faudrait ajouter plus d'exceptions à la définition...


Maintenant, concernant votre formule du nombre de noeuds en fonction de la hauteur... votre formule donne 2^(h+1) -1 noeuds (la même chose que 1+2+2^2+...+2^h). Avec h=-1, la formule donne précisément 1-1=0, donc même cette formule (avec la convention que la hauteur de l'arbre vide est -1) "tombe juste"!

Vastaus Philippe Duchon

Re: Arbres parfaits

Benjamin Castet -

Merci pour l'explication, effectivement avec la relation 2^(h+1)-1=2^h+2^h-1+....+1 c'est logique.