samedi 31 mai 2014

TD 8

Encore des exercices sur les ABR...

La programmation récursive est encore difficile pour certains d'entre vous (et c'est normal car c'est pas très intuitif), nous allons donc encore réaliser un certain nombre d'exercices qui ne sont réalisable que récursivement. Pour implémenter et tester ce fonction vous prendrez votre code qui fait des ABR stockant des nombres entier.
  • Faire une fonction qui affiche uniquement les feuilles (=les noeuds n'ayant pas de fils) d'un arbre.
  • Faire une fonction qui compte, uniquement, les feuilles d'un arbre.
  • Faire une fonction qui "inverse un arbre", les petites valeurs doivent alors se retrouver à droite et les grandes valeurs à gauche. Faites un affichage préfixe avant et après l'appel à la fonction d'inversion pour vérifier que cela fonctionne.
  • Faire une fonction qui prend 2 arbres en paramètre (t1 et t2) et qui ajoute tous les élément de t2 dans t1 (t2 ne doit pas être modifié!).
  • Faire une fonction qui teste l'égalité stricte entre deux arbres. C'est à dire qu'ils contiennent à la fois les même valeurs, mais aussi que ces valeurs sont placées aux même endroits. Cette fonction retourne 1 si les arbres sont identiques, 0 sinon. C'est typiquement la fonction que vous devriez utiliser pour tester vos fonctions de sauvegarde et de chargement d'arbre sur fichier faite au TD7.
Une fois que ces fonctions sont terminées (et bien testées) vous pouvez les re-implémenter sur votre code qui gère des ABR stockant des chaînes de caractères.