A stack is a linear data structure with three fundamental operations: push (insertion of an element from the top of the stack), drop (removal of an element from the stack). Some stack implementations additionally have peek, a function that allows you to see an element in a stack without altering it. Stacks are built with a last-in, first-out structure, which means that the last element added to the stack is also the first element that can be removed. Queues are a type of data structure that works on a first-in, first-out basis. Stacks are often represented as an array or a linked list.  In an interview, you may even be asked to implement a stack and other operations.