• Aucun résultat trouvé

!  2HCH==JE B?JEAA  62 >A?JEBI

N/A
N/A
Protected

Academic year: 2022

Partager "!  2HCH==JE B?JEAA  62 >A?JEBI"

Copied!
2
0
0

Texte intégral

(1)

L3 - Programmation fonctionnelle - TP2 1 Objectifs

Les exercices proposés dans ce TP ont pour objet d'entrainer la compétence M.6 (Variantes) de la grille de compétences de programmation fonctionnelle.

Votre but ne doit pas être de faire tous les exercices proposés pendant la séance de TP, mais plutôt de prendre le temps de comprendre et d'apprendre à appliquer les principes de base de la représentation et de la gestion des arbres en caml.

Face au comportement inattendu d'un programme, ne restez pas dans le doute : faites des expériences, tentez de comprendre ce qui se passe, sollicitez l'enseignant.

Les fonctions demandées doivent être programmées en style fonctionnel pur (sans boucle) et sans utiliser d'éventuelles fonctions prédénies du langage. Chaque fonction doit être validée par des essais réalisés avec des données de test pertinentes.

2 Arbres binaires

Compétence M.6 : Variantes

2.1 Type arbre binaire

Dénissez le type bintree, représentant un arbre binaire, sachant qu'un tel arbre est soit une feuille notéeL, soit un noeud, notéN et ayant trois attributs qui sont un entier (appelé étiquette du noeud), et deux arbres binaires (appelés ls droit et ls gauche).

2.2 Recherche de chemin

On déni le poids d'un chemin d'un arbre comme la somme des valeurs des étiquettes des noeuds de ce chemin.

Implantez une fonction qui accepte en paramètre un arbre binairet et un entier x, et qui retourne une valeur Booléenne égale à true si et seulement si il existe dans tun chemin dont le poids est supérieur à x.

2.3 Parcours d'arbre

Implantez une fonction qui accepte en paramètre un arbre binaire et retourne la liste des étiquettes des noeuds de cet arbre parcouru en ordre inxe.

Le parcours d'un arbre binaire en ordre inxe consiste, pour chaque noeudN, à parcourir d'abord le ls droit en ordre inxe, puis à lire l'étiquette deN, puis à parcourir le ls gauche en ordre inxe.

2.4 Comparaison d'arbres

Implantez une fonction qui accepte en paramètre deux arbres binairest etu, et qui retourne un Booléen valant true si et seulement si les deux arbres sont identiques (i.e., même structure et mêmes étiquettes).

2.5 Construction d'arbres

On associe à chaque feuille d'un arbre binaire un entier, appelé rang. La feuille située la plus à gauche a pour rang 1, et les autres sont numérotées de telle sorte qu'en parcourant l'arbre en ordre inxe, on visite ses feilles dans l'ordre croissant de leurs rangs.

Implantez une fonction qui accèpte en paramètres deux arbres binairestetuet un entieri, et qui retourne l'arbre obtenu en remplaçant danstla feuille de rangipar l'arbreu. S'il n'existe pas de feuille de rangi danst, la fonction doit retournert.

1

(2)

3 Arbres généraux

Compétence M.6 : Variantes

Reprendre les exercices sur les arbres binaires en les adaptant aux arbres généraux. Dans un arbre général, chaque noeud possède un nombre quelconque de ls. Une feuille est simplement un noeud n'ayant aucun ls. On utilisera une liste pour représenter les ls d'un noeud.

2

Références

Documents relatifs

Chercher sur Internet l‘algorithme DSW (c’est un algorithme qui prend en entrée un arbre de recherche binaire afin de réaliser son équilibrage) et l’algorithme de

Pour limiter la complexité des termes intermédiaires, il est préférable de ne remplacer un entier par sa représentation que lorsque toutes les réductions réalisables ont été

Donnez la déclaration d'un type bintree (comme arbre binaire), en considérant qu'un arbre binaire est soit une feuille L , soit un noeud N possdant un attribut de type bool, ainsi

Implantez une fonction qui accepte en paramètre deux liste L et S , et qui retourne la valeur Booléenne true si la liste S est une sous-liste de L et false dans le cas contraire.

En vous basant sur cette dénition, spéciez un prédicat chemin/3 tel que chemin(X,Y,N) soit vrai si et seulement si il existe un chemin de longueur N entre X et Y. Utilisez ce

d- En supposant qu’il existe une fonction point qui permette de dessiner un point de coordonn´ ees (x, y), d´ efinir une fonction qui dessine la repr´ esentation graphique

Le probl` eme de cet exercice consiste ` a d´ eterminer le nombre de points du plan contenus dans un rectangle donn´ e.. Ce genre de situation apparait tr` es souvent dans les

d- En supposant qu’il existe une fonction point/2 qui permette de dessiner un point de coordonn´ ees (x, y), d´ efinir une fonction qui dessine la repr´ esentation graphique