A queue is a first-in first-out (FIFO) data structure with two ends - one for inserting items and one for removing them. It uses two pointers, a front pointer pointing to the oldest item and a rear pointer pointing to the newest, empty slot. Items are inserted at the rear and removed from the front. Operations include enqueue to insert at the rear and dequeue to remove from the front, checking for overflow and underflow.