Stack is a linear data structure that follows LIFO (Last In First Out) principle. Elements can only be inserted or removed from one end called the top. The two main operations on a stack are push and pop. Push inserts an element at the top, while pop removes an element from the top. A stack is generally implemented using an array, with push and pop functions to add or remove elements from the top. Push checks for overflow before incrementing the top pointer and inserting the element. Pop decrements top after removing the top element and returning it.