FIFO is an abbreviation for first in, first out. It is a method for handling data structures where the first element is processed first and the newest element is processed last.
Real life example:
In this example, following things are to be considered:
- There is a ticket counter where people come, take tickets and go.
- People enter a line (queue) to get to the Ticket Counter in an organized manner.
- The person to enter the queue first, will get the ticket first and leave the queue.
- The person entering the queue next will get the ticket after the person in front of him
- In this way, the person entering the queue last will the tickets last
- Therefore, the First person to enter the queue gets the ticket first and the Last person to enter the queue gets the ticket last.
This is known as First-In-First-Out approach or FIFO.
Where is FIFO used:
- Data Structures
Certain data structures like Queue and other variants of Queue uses FIFO approach for processing data.
- Disk scheduling
Disk controllers can use the FIFO as a disk scheduling algorithm to determine the order in which to service disk I/O requests.
- Communications and networking
Communication network bridges, switches and routers used in computer networks use FIFOs to hold data packets en route to their next destination.
Program Examples for FIFO
Program 1: Queue
Elements of queue-[0, 1, 2, 3, 4] removed element-0 [1, 2, 3, 4] head of queue-1 Size of queue-4
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- FIFO vs LIFO approach in Programming
- Program for Page Replacement Algorithms | Set 2 (FIFO)
- Queue based approach for first non-repeating character in a stream
- Iterative approach to check if a Binary Tree is Perfect
- What is Competitive Programming and How to Prepare for It?
- Minimum number of jumps to obtain an element of opposite parity
- Minimum characters required to be removed to make frequency of each character unique
- Possible arrangement of persons waiting to sit in a hall
- Print siblings of a given Node in N-ary Tree
- Generate Linked List consisting of maximum difference of squares of pairs of nodes from given Linked List
- Maximize product of array by replacing array elements with its sum or product with element from another array
- Calculate server loads using Round Robin Scheduling
- Minimize cost to convert all characters of a binary string to 0s
- Check if a Binary Tree contains node values in strictly increasing and decreasing order at even and odd levels
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.