1) A queue is a first-in first-out (FIFO) data structure where elements can only be added to the rear of the queue and removed from the front of the queue.
2) The components of a queue include the front and rear pointers, elements that hold data, and the maximum size of the queue.
3) Queues can be implemented using arrays or linked lists, with operations including initialization, checking for empty/full, enqueue to add elements, and dequeue to remove elements.