A queue is First-In-First-Out (FIFO) data structure. Unlike stack, a queue is open at both ends. New elements are inserted at rear (enqueue), and existing elements are removed from the front (dequeue). Queue can be implemented with array, linked list or stacks.