Le but de ces questions est d'implanter les primitives d'un type de données abstrait d'arbres binaires représenté comme suit :
type arbre = ^noeud; noeud = record gauche : arbre; info : integer; droit : arbre; end;La figure ci-dessous donne un exemple d'un arbre binaire A construit avec le type arbre ci-dessus.
1.b Ecrire la fonction cons_arbre qui, à partir d'un entier e et de deux arbres g et d, renvoie un arbre binaire dont le champ info est e et ayant pour fils gauche g et pour fils droit d.
1.c Ecrire la fonction est_vide qui renvoie true si l'arbre passé en paramètre est vide, false sinon.
1.d Ecrire la fonction valeur qui renvoie la valeur contenue dans le champ info de la racine de l'arbre non vide passé en paramètre. Pour l'arbre donné en exemple, la fonction valeur renverrait 1.
1.e Ecrire la fonction fils_gauche qui renvoie le fils gauche d'un arbre non vide passé en paramètre.
Ecrire la fonction fils_droit qui renvoie le fils droit d'un arbre non vide passé en paramètre.
1.f En utilisant exclusivement les fonctions arbre_vide et cons_arbre, déterminer l'expression construisant l'arbre ci-dessous.
1.g Ecrire la fonction nb_noeuds qui retourne le nombre de nuds de l'arbre passé en paramètre (un arbre vide est constitué de 0 nud ; dans l'exemple donné en première page, la fonction nb_noeuds renvoie 10).
1.h Ecrire la fonction arbre_similaire qui renvoie true si les deux arbres passés en paramètre sont similaires (tous les deux vides ou bien avec le même champ info pour les racines et des sous arbres similaires) et false sinon.
This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)
Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 0 arbre.tex.
The translation was initiated by Frederic Mesnard on 1999-06-10