• Aucun résultat trouvé

Programmation fonctionnelle - TD5 Licence 3

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation fonctionnelle - TD5 Licence 3"

Copied!
1
0
0

Texte intégral

(1)

Programmation fonctionnelle - TD5

Licence 3

Stefano Guerrini 12 mars 2010

On consider le type suivant pour les arbres binaires ´etiquett´es sur les nodes : type ’a bintree = Leaf ’a | Node of ’a * ’a bintree * ’a bintree Ecrire les suivantes fonctions.´

1. height : ’a bintree -> int

Qui calcule la profondeur d’un arbre binaire.

2. addlabels : int bintree -> int

Qui calcule la somme des ´etiquettes d’un arbre binaire.

3. preorder : ’a bintree -> ’a list

Qui retourne la liste des ´etiquettes de tous les nodes d’un arbre binaire en ordre pr´efixe (ou pr´eordre).

4. postorder : ’a bintree -> ’a list

Qui retourne la liste des ´etiquettes de tous les nodes d’un arbre binaire en ordre postfixe (ou postordre).

5. inorder : ’a bintree -> ’a list

Qui retourne la liste des ´etiquettes de tous les nodes d’un arbre binaire en ordre infixe (ou inordre).

6. list_of_leaves : ’a bintree -> ’a list

Qui retourne la liste des feuilles d’un arbre binaire (de gauche `a droite).

7. list_of_nodes_depth : int * ’a arbre -> ’a list

Qui retourne la liste des feuilles d’un arbre binaire `a une profondeur donn´ee 8. subtrees

Qui calcule la liste des sous-arbres d’un arbre binaire.

9. filter_bintree : (’a -> bool) -> ’a bintree -> ’a list

Qui construit la liste en ordre pr´efixe des ´etiquettes d’un arbre binaire v´erifiant un pr´edicat donn´e.

10. map_bintree : (’a -> ’b) -> ’a bintree -> ’b bintree Qui applique une fonction `a toutes les ´etiquettes d’un arbre binaire.

11. Un arbre binaire est dit satur´e si toutes les feuilles sont `a la mˆeme profondeur. D´efinir le pr´edicat sature : ’a bintree -> bool dont la valeur est true si et seulement si un arbre binaire donn´e est satur´e. (Suggestion : utiliser une fonction qui return −1 si un arbre n’est pas satur´e et k≥0 si l’arbre est satur´e de profondeur k).

1

Références

Documents relatifs

[r]

R´ epondre par VRAI ou FAUX (sans commentaire) ` a chacune des questions suivantes (notation : +1 par r´ eponse correcte et -1 par r´ eponse incorrecte ; la note de l’exercice sera

Donc cette dernière somme est atteinte, ce qui entraîne l’égalité

1) Si je suis espagnol, alors je suis européen. 2) Si je suis enfant unique, alors je n’ai ni frère, ni sœur. 3) Si je suis français, alors je suis guadeloupéen. 4) Si je

[r]

En utilisant la r´ eciproque du th´ eor` eme des milieux dans le triangle ABC , I est le milieu de [AC], donc si (KI) ´ etait parall` ele ` a (BC ) alors K serait le milieu de

L’insertion et la suppression utilisent la rotation ` a gauche et ` a droite d’un arbre lorsqu’il est trop d´ es´ equilibr´ e :.

Complexit´ e des op´ erations pr´ ec´ edentes Pour un arbre binaire de taille n,. la complexit´ e dans le pire des