Stack is an abstract data type that serves as a linear collection of elements. It has two main operations: push, which adds an element to the top of the stack, and pop, which removes the top element. A stack follows last-in, first-out (LIFO) order, meaning the last element added is the first removed. Common real-world examples of stacks include piles of plates and books.