A Stack is an abstract data type (ADT), this means its a concept rather than an implementation. I will explain the Stack ADT using the idea of a pile of plates. The pile is the Stack.
With a pile of plates you can only do 2 things:
These 2 actions have specific names. You PUSH a plate onto the top of the pile and POP a plate of the top of the pile.
A Stack can be implemented using a LinkedList where the last element in the LinkedList is the element on top of the pile. When you POP from the stack the element that was below it becomes the new element at the top, i.e the plate second from the top in the pile of plates.