Adloun

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 ; defiler lève une IndexError si 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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre