1. A stack is a linear data structure that follows the LIFO (Last In First Out) principle, where the last item inserted is the first item removed. It allows insertion and removal of items from one end only.
2. Stacks have many applications including function calls, memory allocation, undo operations, and parsing expressions. They use push and pop operations to insert and remove items.
3. A queue is a linear data structure that follows the FIFO (First In First Out) principle, where the first item inserted is the first item removed. It allows insertion at one end (rear) and removal from the other (front). Queues are useful for scheduling processes.