Stack a Dimensione Fissa
Fai parte del team di sviluppo di una piattaforma per l'insegnamento della programmazione. Come lezione sulla gestione delle eccezioni e sulla creazione di strutture dati, ti è stato chiesto di implementare una classe Stack
in Python. Questo Stack ha una dimensione fissa e supporta tre operazioni:
push(item)
: Aggiunge un elemento in cima allo stack.pop()
: Rimuove l'elemento in cima allo stack e lo restituisce.peek()
: Visualizza l'elemento in cima allo stack senza rimuoverlo.
Tuttavia, la tua classe Stack
deve rispettare le seguenti restrizioni:
L'operazione
push(item)
dovrebbe sollevare un'eccezioneStackOverflowError
se si tenta di inserire un elemento in uno stack pieno.L'operazione
pop()
dovrebbe sollevare un'eccezioneStackEmptyError
se si tenta di estrarre un elemento da uno stack vuoto.
Per creare una buona astrazione dell'ereditarietà tra le classi, StackOverflowError
e StackEmptyError
dovrebbero ereditare da Exception
e non accettare argomenti nei loro metodi __init__
.
Input | Output |
---|---|
| StackOverflowError: The stack is full |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB