NSI (terminale) · Chapitre 9 · Exercice d'entraînement
Une file faite de deux piles
La programmation orientée objet · Structures de données en POO · niveau 3 (difficile)
Énoncé
Une file faite de deux piles. On dispose d'une classe Pile offrant les méthodes empiler(v), depiler() et est_vide(), toutes en temps constant.
class Pile:
def __init__(self):
self._elements = []
def est_vide(self):
return len(self._elements) == 0
def empiler(self, v):
self._elements.append(v)
def depiler(self):
return self._elements.pop()
On veut écrire une classe FileDeuxPiles offrant enfiler(v), defiler() et est_vide(), avec un comportement FIFO, en n'utilisant comme attributs que deux piles : _entree et _sortie.
- Expliquer l'idée : que se passe-t-il quand on dépile entièrement une pile dans une autre ?
- Écrire la classe ;
defilerlève uneIndexErrorsi la file est vide. - Donner le contenu des deux piles après chaque opération de la suite : enfiler , , ; défiler ; enfiler ; défiler trois fois.
- Montrer que opérations quelconques coûtent au total .
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.