Pila de Tamaño Fijo

Formas parte del equipo de desarrollo de una plataforma de enseñanza de programación. Como lección sobre manejo de excepciones y creación de estructuras de datos, te han pedido que implementes una clase Stack en Python. Esta pila tiene un tamaño fijo y soporta tres operaciones:
  • push(item): Agrega un elemento a la cima de la pila.
  • pop(): Elimina el elemento superior de la pila y lo devuelve.
  • peek(): Observa el elemento superior de la pila sin eliminarlo.
Sin embargo, tu clase Stack debe cumplir con las siguientes restricciones:
  • La operación push(item) debe lanzar una excepción StackOverflowError si se intenta agregar un elemento a una pila llena.
  • La operación pop() debe lanzar una excepción StackEmptyError si se intenta eliminar un elemento de una pila vacía.
Para lograr una buena abstracción de herencia de clases, StackOverflowError y StackEmptyError deben heredar de Exception y no aceptar argumentos en sus métodos __init__.
Entrada
Salida
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