# Which Data Structure Follows FIFO?

//

Angela Bailey

In computer science, a data structure is a way of organizing and storing data in a computer’s memory. There are various types of data structures, each with its own advantages and use cases.

One important classification of data structures is based on how they handle the order in which elements are processed.

## FIFO Data Structure

FIFO stands for “First-In, First-Out,” which means that the first element to be inserted into the data structure is the first one to be removed. This concept is similar to standing in a queue or waiting in line, where the person who arrives first is served first.

A data structure that follows the FIFO principle is called a queue. In a queue, elements are added at one end called the rear, and removed from the other end called the front. This behavior makes it an ideal choice when order matters and preserving sequence is important.

### Queue Operations

A queue typically supports two main operations:

• Enqueue: Adding an element to the rear of the queue.
• Dequeue: Removing an element from the front of the queue.

### Example Scenario: Printer Queue

To understand how queues work, let’s consider a real-world example: a printer queue. When multiple users send print requests simultaneously, their documents are added to a printer queue based on their arrival time. The printer serves each document one by one according to their order in the queue.

Suppose three users send print requests in this order:

1. User A – Print document X
2. User B – Print document Y
3. User C – Print document Z

The printer queue will look like this:

• Front: User A – Print document X (Next to be served)
• User B – Print document Y
• Rear: User C – Print document Z (Last in the queue)

The printer will first print document X for User A, then document Y for User B, and finally document Z for User C.

### Implementation of a Queue

A queue can be implemented using various data structures such as arrays, linked lists, or even stacks. However, the most common implementation is using a linked list because it allows dynamic memory allocation and efficient insertion and deletion operations.

To create a queue using a linked list, we need to define two main components:

• A structure to represent each node of the linked list. This structure contains the data and a pointer to the next node.
• A structure that represents the queue itself. This structure contains two pointers: one pointing to the front of the queue and another pointing to the rear.

### Conclusion

A FIFO data structure is essential in scenarios where maintaining order matters. The queue data structure follows the FIFO principle and is commonly used in various applications such as operating systems, network routers, and simulations. Understanding how queues work and their implementation using linked lists can greatly enhance your ability to solve complex problems efficiently.