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 eine StackOverflowError-Ausnahme auslösen, wenn versucht wird, ein Element auf einen vollen Stapel zu legen.
  • Die Operation pop() soll eine StackEmptyError-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

To check your solution you need to sign in
Sign in to continue