Stack is a linear data structure that follows the LIFO (Last In First Out) principle. Elements are inserted and removed from the top of the stack. Stack can be implemented using arrays or linked lists. Common stack operations are push, which adds an element to the top, and pop, which removes an element from the top.