Exercices de programmation pour classes préparatoires
Une file (FIFO) peut etre simulee a l'aide de deux piles (LIFO). L'astuce consiste a utiliser une pile pour les entrees et une pile pour les sorties : quand la pile de sortie est vide, on y transvase toute la pile d'entree, ce qui inverse l'ordre.
Ecrire une fonction file_ops(operations) qui prend une liste d'operations et renvoie la liste des valeurs renvoyees par les operations defiler.
Chaque operation est un tuple :
- ("enfiler", valeur) : ajoute valeur en fin de file.
- ("defiler",) : retire et renvoie l'element en tete de file.
On garantit qu'aucun defiler n'est appele sur une file vide.
Dans votre implementation, vous ne devez utiliser que les operations classiques d'une pile sur deux listes (append et pop() sans argument).
| Appel | Résultat attendu |
|---|---|
| file_ops([('enfiler', 1), ('enfiler', 2), ('defiler',), ('defiler',)]) | [1, 2] |
| file_ops([('enfiler', 1), ('defiler',), ('enfiler', 2), ('enfiler', 3), ('defiler',)]) | [1, 2] |
Connectez-vous pour soumettre du code.