Exercice : Une fonction de contrôle d'équilibre d'un arbre
Pour réaliser le contrôle de l'équilibre d'un arbre, nous devons utiliser 2 types d'informations d'importance inégale.
Le 1er type est la hauteur d'un arbre puisqu'on compare les hauteurs des sous-arbres d'un nœud. Le 2e type est la conformité d'un sous-arbre au critère d'équilibre.
L'information de conformité se révèle plus importante que la hauteur de l'arbre puisqu'un défaut local sur un nœud induit le non-équilibre de l'arbre en entier.
Nous choisissons d'écrire une fonction de prototype int equilibre(TarbreBin a)
qui retourne pour la racine de l'arbre a, la hauteur de l'arbre ou la valeur -1 si l'équilibre n'est pas respecté, à un quelconque niveau.
Organisez les instructions de définition de cette fonction :
int equilibre(TarbreBin a){
...
}
return -1 ; if(g>=d) else return 1+g ; if (abs(g-d)<2) if (g>=0 && d>=0) int d=equilibreI(a->filsDroit); return 1+g ; int g=equilibreI(a->filsGauche); if(NULL==a)return 0; Plus d'éléments à catégoriser |
Déposez ici
Déposez ici
Déposez ici
Déposez ici
Déposez ici
Déposez ici
Déposez ici
Déposez ici
Déposez ici |