Fixed Size Stack
You are part of a development team for a programming teaching platform. As a lesson in exception handling and data structure creation, you've been asked to implement a Stack class in Python. This Stack has a fixed size and supports three operations:
push(item)
: Add an item to the top of the stack.
pop()
: Remove the top item of the stack and return it.
peek()
: Look at the top item of the stack without removing it.
However, your Stack class must have the following constraints:
- The
push(item)
operation should raise aStackOverflowError
exception if trying to push an item onto a full stack.
- The
pop()
operation should raise aStackEmptyError
exception if trying to pop an item from an empty stack.
To create a good inheritance abstraction of classes,
StackOverflowError
and StackEmptyError
should inherit from Exception
and not accept arguments in their __init__
methods.Input | Output |
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