A queue is a data structure that follows the first-in, first-out (FIFO) principle. Items are added to the end of the queue using enqueue and removed from the front using dequeue. Queues can be implemented using arrays, with a front pointer pointing to the first item and a rear pointer pointing to the last item.