Pile de Taille Fixe

Vous faites partie d'une équipe de développement pour une plateforme d'enseignement de la programmation. Dans le cadre d'une leçon sur la gestion des exceptions et la création de structures de données, on vous a demandé d'implémenter une classe Stack en Python. Cette pile a une taille fixe et prend en charge trois opérations :
  • push(item): Ajoute un élément au sommet de la pile.
  • pop(): Retire l'élément au sommet de la pile et le renvoie.
  • peek(): Regarde l'élément au sommet de la pile sans le retirer.
Cependant, votre classe Stack doit respecter les contraintes suivantes :
  • L'opération push(item) doit lever une exception StackOverflowError si l'on tente d'ajouter un élément dans une pile pleine.
  • L'opération pop() doit lever une exception StackEmptyError si l'on tente de retirer un élément d'une pile vide.
Pour créer une bonne abstraction d'héritage de classes, StackOverflowError et StackEmptyError doivent hériter de Exception et ne pas accepter d'arguments dans leurs méthodes __init__.
Entrée
Sortie
stack = Stack(3); stack.push('A'); stack.push('B'); stack.push('C'); stack.push('D'); print(stack.peek()); print(stack.pop()); print(stack.pop()); print(stack.pop()); print(stack.pop())
StackOverflowError: The stack is full C C B A StackEmptyError: The stack is empty
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue