निश्चित आकार का स्टैक

आप एक प्रोग्रामिंग शिक्षण प्लेटफ़ॉर्म की विकास टीम का हिस्सा हैं। अपवाद हैंडलिंग और डेटा संरचना निर्माण के पाठ के रूप में, आपसे Python में एक Stack क्लास को लागू करने के लिए कहा गया है। यह Stack निश्चित आकार का है और तीन ऑपरेशनों को सपोर्ट करता है:

  • push(item): स्टैक के शीर्ष पर एक आइटम जोड़ना।

  • pop(): स्टैक के शीर्ष से एक आइटम हटाना और उसे वापस करना।

  • peek(): बिना हटाए स्टैक के शीर्ष आइटम को देखना।

लेकिन, आपके Stack क्लास में निम्नलिखित सीमाएँ होनी चाहिए:

  • यदि पूर्ण स्टैक पर आइटम जोड़ने की कोशिश की जाती है, तो push(item) ऑपरेशन को StackOverflowError एक्सेप्शन उठाना चाहिए।

  • यदि खाली स्टैक से आइटम निकालने की कोशिश की जाती है, तो pop() ऑपरेशन को StackEmptyError एक्सेप्शन उठाना चाहिए।

क्लासेस की अच्छी इनहेरिटेंस एब्स्ट्रैक्शन बनाने के लिए, StackOverflowError और StackEmptyError को Exception से इनहेरिट करना चाहिए और उनकी __init__ मेथड्स में कोई आर्गुमेंट स्वीकार नहीं करने चाहिए।

इनपुट

आउटपुट

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: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB