Retour aux exercices sur les files et piles
L’objectif de ce TD est de proposer de nouvelles méthodes pour le type File
à l’aide des codes suivants :
Pour commencer, ajoutez le prédicat suivant :
taille : File -> entier
# à partir d'une file F, renvoie le nombre d'éléments qu'elle contient
Nous pourrons ensuite ajouter deux autres prédicats :
max: File -> entier
# à partir d'une file F, renvoie la valeur maximum
min: File -> entier
# à partir d'une file F, renvoie la valeur minimum
Ensuite, proposez une implémentation pour la méthode suivante :
inverse: File -> File
# Renvoie une copie de la file en paramètre avec l'ordre des éléments inversé
Nous allons maintenant nous intéresser à des opérations un peu plus compliquées :
trier: File -> File
# Tri une liste donnée en paramètre
fusionne: (File * File) -> File
# Fusionne deux files triées en une seule (bien triée)
Enfin, pour pousser un peu plus loin, proposez une implémentation pour la méthode suivante :
popValeur: (Valeur * File) -> File
# Enlève d'une file tout les éléments dont la valeur est passée en paramètre