1) Stacks are linear data structures that follow the LIFO (last-in, first-out) principle. Elements can only be inserted or removed from one end called the top of the stack. 2) The basic stack operations are push, which adds an element to the top of the stack, and pop, which removes an element from the top. 3) Stacks have many applications including evaluating arithmetic expressions by converting them to postfix notation and implementing the backtracking technique in recursive backtracking problems like tower of Hanoi.