Untitled

🧩 Syntax:
class Node:
    def __init__(self,data):
        self.data = data
        self.next = None
class Stack:
    def __init__(self):
        self._head = None
        self._size = 0
    def push(self,data):
        new_node = Node(data)
        new_node.next = self._head
        self._head = new_node
        self._size += 1
    def pop(self):
        if self._size==0:
            return -1
        data = self._head = self._head
        self._head = self._head.next
        self._size -= 1
        return data 
    def top(self):
        if self._size==0:
            return -1
        else:
            return self._head.data              
    def size(self):
        return self._size
    def isEmpty(self):
        return self._size==0
# Driver code
if __name__ == "__main__":
    q = int(input())
    stack = Stack()

   
    for _ in range(q):
        query = list(map(int,input().split()))
        if query[0]==1:
            stack.push(query[1])
        elif query[0]==2:
            print(stack.pop())
        elif query[0]==3:
            print(stack.top())
        elif query[0]==4:
            print(stack.size())
        elif query[0]==5:
            print(stack.isEmpty())