• A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle
  • In the pushdown stacks only two operations are allowed
  • Those are push the item into the stack, and pop the item out of the stack
  • A stack is a limited access data structure - elements can be added and removed from the stack only at the top
  • push adds an item to the top of the stack, pop removes the item from the top
  • A helpful analogy is to think of a stack of books; you can remove only the top book, also you can add a new book on the top.




A stack is a recursive data structure. Here is a structural definition of a Stack:

  • a stack is either empty or it consistes of a top and the rest which is a stack;

Applications : 

  • The simplest application of a stack is to reverse a word. You push a given word to stack - letter by letter - and then pop letters from the stack.
  • Another application is an "undo" mechanism in text editors; this operation is accomplished by keeping all text changes in a stack.
  • Language processing
  • Backtraking