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ónStackOverflowError
si se intenta agregar un elemento a una pila llena.
- La operación
pop()
debe lanzar una excepciónStackEmptyError
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