Piles

Retour aux exercices sur les files et piles

L’objectif de ce TD est de proposer de nouvelles méthodes pour le type Pile à l’aide des codes suivants:

Pour commencer, ajoutez le prédicat suivant :

taille : Pile -> entier
  # à partir d'une pile P, renvoie le nombre d'éléments qu'elle contient

Nous pourrons ensuite ajouter deux autres prédicats :

max: Pile -> entier
  # à partir d'une pile P, renvoie la valeur maximum

min: Pile -> entier
  # à partir d'une pile P, renvoie la valeur minimum

Ensuite, proposez une implémentation pour la méthode suivante :

copie: Pile -> Pile
    # Renvoie une copie de la pile en paramètre dans une nouvelle pile

Nous allons maintenant nous intéresser à une opération un peu plus compliquée : à partir d’une file contenant des parenthèses, crochets et accolades, vérifier si le parenthésage est bon. Vous aurez besoin d’une pile. Exemple :

["(", "[", "]", ")"] -> True
["(", "[", ")", "]"] -> False

Enfin, pour pousser un peu plus loin, proposez une implémentation de la méthode suivante :

switch: Pile -> Pile
    # Inverse les éléments du sommet et du bas de la pile uniquement