Stapel mit fester Größe
Sie sind Teil eines Entwicklungsteams für eine Plattform zum Programmierenlernen. Als Lektion in Ausnahmebehandlung und der Erstellung von Datenstrukturen wurden Sie gebeten, eine
Stack
-Klasse in Python zu implementieren. Dieser Stapel hat eine feste Größe und unterstützt drei Operationen:push(item)
: Fügt ein Element oben auf den Stapel hinzu.
pop()
: Entfernt das oberste Element des Stapels und gibt es zurück.
peek()
: Schaut sich das oberste Element des Stapels an, ohne es zu entfernen.
Ihre
Stack
-Klasse muss jedoch die folgenden Bedingungen erfüllen:- Die Operation
push(item)
soll eineStackOverflowError
-Ausnahme auslösen, wenn versucht wird, ein Element auf einen vollen Stapel zu legen.
- Die Operation
pop()
soll eineStackEmptyError
-Ausnahme auslösen, wenn versucht wird, ein Element von einem leeren Stapel zu entfernen.
Um eine gute Vererbungshierarchie der Klassen zu erstellen, sollen
StackOverflowError
und StackEmptyError
von Exception
erben und in ihren __init__
-Methoden keine Argumente akzeptieren.Eingabe | Ausgabe |
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