Adding to what Ganesh has explained -
Stack is one kind of data structure and it works in principle "Last In First Out". It has primarily two operations: push the item into the stack, and pop the item out of the stack. In a stack 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.
Some Applications:
"undo" mechanism in computer software where we keep pushing the operation list in a stack and whenever user press undo we pop from the stack and reverse the operation.
"Function of the C" whenever a function is called we push the context to the stack and whenever function finished we pop the context from the stack.
"reverse a word" push a given word to stack - letter by letter - and then pop letters from the stack.
Image Credit: Wiki