Présentation
…
Problèmes classiques
Pour résoudre les problèmes suivants,
on dispose d’autant de piles que l’on veut,
et des structures classiques comme Si
et Tant_Que
…
mais pas aux listes par exemple.
On peut par exemple écrire:
P = nouvelle_pile()
Q = nouvelle_pile()
...
L’interface de ces piles est l’interface classique:
empiler
, dépiler
, est_vide
.
Problème 0
Longueur d’une pile.
Problème 0 bis
Longueur d’une pile, mais sans modifier la pile.
Problème 1
Présence d’une valeur dans une pile, sans altérer la pile.
On dispose d’une pile A qui contient des valeurs, et une valeur v. Ecrire un algorithme qui indique si v est une valeur de A. A la fin de l’exécution, A devra être revenue dans son état initial.
Votre algorithme était-il correct sur une pile vide?
Problème 2
Retourner une pile.
On dispose d’une pile A qui contient des valeurs. Ecrire un algorithme qui “retourne” la pile, c’est-à-dire met les valeurs récentes en dessous et les valeurs anciennes au dessus.
Votre algorithme était-il correct sur une pile vide?
Problème 3
Séparer les pairs des impairs en les gardant dans l’ordre.
Problème 4
Implémenter une File avec deux piles, une Pile avec deux files.