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 exceptionStackOverflowError
si l'on tente d'ajouter un élément dans une pile pleine.
- L'opération
pop()
doit lever une exceptionStackEmptyError
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