Pilha de Tamanho Fixo
Você faz parte de uma equipa de desenvolvimento para uma plataforma de ensino de programação. Como parte de uma lição sobre manipulação de exceções e criação de estruturas de dados, pediram-lhe para implementar uma classe
Stack
em Python. Esta pilha tem um tamanho fixo e suporta três operações:push(item)
: Adiciona um item ao topo da pilha.
pop()
: Remove e retorna o item do topo da pilha.
peek()
: Visualiza o item no topo da pilha sem removê-lo.
No entanto, a sua classe
Stack
deve cumprir as seguintes restrições:- A operação
push(item)
deve levantar uma exceçãoStackOverflowError
se tentar adicionar um item a uma pilha cheia.
- A operação
pop()
deve levantar uma exceçãoStackEmptyError
se tentar remover um item de uma pilha vazia.
Para criar uma boa abstração de herança entre classes, as exceções
StackOverflowError
e StackEmptyError
devem herdar de Exception
e não aceitar argumentos nos seus métodos __init__
.Entrada | Saída |
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