class Node:
def __init__(self, data):
self.data = data
self.next = None
class Stack:
def __init__(self):
self.top = None
def push(self, data):
new_node = Node(data)
new_node.next = self.top
self.top = new_node
print("Node is Inserted")
def pop(self):
if self.is_empty():
print("EMPTY STACK")
return
popped_element = self.top.data
self.top = self.top.next
print("Popped Element:", popped_element)
def display(self):
if self.is_empty():
print("EMPTY STACK")
return
cur = self.top
stack_elements = []
while cur:
stack_elements.append(cur.data)
cur = cur.next
print("The stack is:", ' '.join(map(str, stack_elements)))
def is_empty(self):
return self.top is None
stack = Stack()
while True:
try:
choice = int(input().strip())
if choice == 1:
element = input().strip()
stack.push(element)
elif choice == 2:
stack.pop()
elif choice == 3:
stack.display()
elif choice == 4:
break
else:
print("Wrong choice")
except ValueError:
print("Wrong choice")
Y2xhc3MgTm9kZToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhKToKICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCiAgICAgICAgc2VsZi5uZXh0ID0gTm9uZQoKY2xhc3MgU3RhY2s6CiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgc2VsZi50b3AgPSBOb25lCgogICAgZGVmIHB1c2goc2VsZiwgZGF0YSk6CiAgICAgICAgbmV3X25vZGUgPSBOb2RlKGRhdGEpCiAgICAgICAgbmV3X25vZGUubmV4dCA9IHNlbGYudG9wCiAgICAgICAgc2VsZi50b3AgPSBuZXdfbm9kZQogICAgICAgIHByaW50KCJOb2RlIGlzIEluc2VydGVkIikKCiAgICBkZWYgcG9wKHNlbGYpOgogICAgICAgIGlmIHNlbGYuaXNfZW1wdHkoKToKICAgICAgICAgICAgcHJpbnQoIkVNUFRZIFNUQUNLIikKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgcG9wcGVkX2VsZW1lbnQgPSBzZWxmLnRvcC5kYXRhCiAgICAgICAgc2VsZi50b3AgPSBzZWxmLnRvcC5uZXh0CiAgICAgICAgcHJpbnQoIlBvcHBlZCBFbGVtZW50OiIsIHBvcHBlZF9lbGVtZW50KQoKICAgIGRlZiBkaXNwbGF5KHNlbGYpOgogICAgICAgIGlmIHNlbGYuaXNfZW1wdHkoKToKICAgICAgICAgICAgcHJpbnQoIkVNUFRZIFNUQUNLIikKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgY3VyID0gc2VsZi50b3AKICAgICAgICBzdGFja19lbGVtZW50cyA9IFtdCiAgICAgICAgd2hpbGUgY3VyOgogICAgICAgICAgICBzdGFja19lbGVtZW50cy5hcHBlbmQoY3VyLmRhdGEpCiAgICAgICAgICAgIGN1ciA9IGN1ci5uZXh0CiAgICAgICAgcHJpbnQoIlRoZSBzdGFjayBpczoiLCAnICcuam9pbihtYXAoc3RyLCBzdGFja19lbGVtZW50cykpKQoKICAgIGRlZiBpc19lbXB0eShzZWxmKToKICAgICAgICByZXR1cm4gc2VsZi50b3AgaXMgTm9uZQoKc3RhY2sgPSBTdGFjaygpCgp3aGlsZSBUcnVlOgogICAgdHJ5OgogICAgICAgIGNob2ljZSA9IGludChpbnB1dCgpLnN0cmlwKCkpCiAgICAgICAgaWYgY2hvaWNlID09IDE6CiAgICAgICAgICAgIGVsZW1lbnQgPSBpbnB1dCgpLnN0cmlwKCkKICAgICAgICAgICAgc3RhY2sucHVzaChlbGVtZW50KQogICAgICAgIGVsaWYgY2hvaWNlID09IDI6CiAgICAgICAgICAgIHN0YWNrLnBvcCgpCiAgICAgICAgZWxpZiBjaG9pY2UgPT0gMzoKICAgICAgICAgICAgc3RhY2suZGlzcGxheSgpCiAgICAgICAgZWxpZiBjaG9pY2UgPT0gNDoKICAgICAgICAgICAgYnJlYWsKICAgICAgICBlbHNlOgogICAgICAgICAgICBwcmludCgiV3JvbmcgY2hvaWNlIikKICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgIHByaW50KCJXcm9uZyBjaG9pY2UiKQo=