FIFO (First-In-First-Out) approach in Programming Last Updated : 06 Dec, 2022 Comments Improve Suggest changes Like Article Like Report 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 himIn this way, the person entering the queue last will the tickets lastTherefore, 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 C++ // C++ program to demonstrate // working of FIFO // using Queue interface in C++ #include<bits/stdc++.h> using namespace std; // print the elements of queue void print_queue(queue<int> q) { while (!q.empty()) { cout << q.front() << " "; q.pop(); } cout << endl; } // Driver code int main() { queue<int> q ; // Adds elements {0, 1, 2, 3, 4} to queue for (int i = 0; i < 5; i++) q.push(i); // Display contents of the queue. cout << "Elements of queue-"; print_queue(q); // To remove the head of queue. // In this the oldest element '0' will be removed int removedele = q.front(); q.pop(); cout << "removed element-" << removedele << endl; print_queue(q); // To view the head of queue int head = q.front(); cout << "head of queue-" << head << endl; // Rest all methods of collection interface, // Like size and contains can be used with this // implementation. int size = q.size(); cout << "Size of queue-" << size; return 0; } // This code is contributed by Arnab Kundu Java // Java program to demonstrate // working of FIFO // using Queue interface in Java import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queue<Integer> q = new LinkedList<>(); // Adds elements {0, 1, 2, 3, 4} to queue for (int i = 0; i < 5; i++) q.add(i); // Display contents of the queue. System.out.println("Elements of queue-" + q); // To remove the head of queue. // In this the oldest element '0' will be removed int removedele = q.remove(); System.out.println("removed element-" + removedele); System.out.println(q); // To view the head of queue int head = q.peek(); System.out.println("head of queue-" + head); // Rest all methods of collection interface, // Like size and contains can be used with this // implementation. int size = q.size(); System.out.println("Size of queue-" + size); } } Python3 # Python program to demonstrate # working of FIFO # using Queue interface in Python q = [] # Adds elements {0, 1, 2, 3, 4} to queue for i in range(5): q.append(i) # Display contents of the queue. print("Elements of queue-" , q) # To remove the head of queue. # In this the oldest element '0' will be removed removedele = q.pop(0) print("removed element-" , removedele) print(q) # To view the head of queue head = q[0] print("head of queue-" , head) # Rest all methods of collection interface, # Like size and contains can be used with this # implementation. size = len(q) print("Size of queue-" , size) # This code is contributed by patel2127. C# // C# program to demonstrate // working of FIFO using System; using System.Collections.Generic; public class QueueExample { public static void Main(String[] args) { Queue<int> q = new Queue<int>(); // Adds elements {0, 1, 2, 3, 4} to queue for (int i = 0; i < 5; i++) q.Enqueue(i); // Display contents of the queue. Console.Write("Elements of queue-"); foreach(int s in q) Console.Write(s + " "); // To remove the head of queue. // In this the oldest element '0' will be removed int removedele = q.Dequeue(); Console.Write("\nremoved element-" + removedele + "\n"); foreach(int s in q) Console.Write(s + " "); // To view the head of queue int head = q.Peek(); Console.Write("\nhead of queue-" + head); // Rest all methods of collection interface, // Like size and contains can be used with this // implementation. int size = q.Count; Console.WriteLine("\nSize of queue-" + size); } } // This code has been contributed by 29AjayKumar JavaScript <script> // JavaScript program to demonstrate // working of FIFO // using Queue interface in Java let q = []; // Adds elements {0, 1, 2, 3, 4} to queue for (let i = 0; i < 5; i++) q.push(i); // Display contents of the queue. document.write("Elements of queue-[" + q.join(", ")+"]<br>"); // To remove the head of queue. // In this the oldest element '0' will be removed let removedele = q.shift(); document.write("removed element-" + removedele+"<br>"); document.write("["+q.join(", ")+"]<br>"); // To view the head of queue let head = q[0]; document.write("head of queue-" + head+"<br>"); // Rest all methods of collection interface, // Like size and contains can be used with this // implementation. let size = q.length; document.write("Size of queue-" + size+"<br>"); // This code is contributed by avanitrachhadiya2155 </script> OutputElements of queue-0 1 2 3 4 removed element-0 1 2 3 4 head of queue-1 Size of queue-4 Complexities Analysis: Time Complexity: O(N)Space Complexity: O(N) Comment More infoAdvertise with us Next Article FIFO (First-In-First-Out) approach in Programming C code_r Follow Improve Article Tags : Queue Data Structures DSA Practice Tags : Data StructuresQueue Similar Reads LIFO (Last-In-First-Out) approach in Programming Prerequisites - FIFO (First-In-First-Out) approach in Programming, FIFO vs LIFO approach in Programming LIFO is an abbreviation for last in, first out. It is a method for handling data structures where the first element is processed last and the last element is processed first. Real-life example: In 6 min read FIFO vs LIFO approach in Programming 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. Prerequisite - FIFO (First-In-First-Out) approach in Programming Real-life example: LIFO is an abbreviation for Last in, f 2 min read Programming or DSA: Which one should I learn first? Programming and Data Structures and Algorithms (DSA), both are important to learn because they form the foundation of creating computer programs and solving problems effectively. But deciding where to start in computer science can be tricky, i.e. Should you learn Programming first or jump into Data 10 min read Types of Issues and Errors in Programming/Coding "Where there is code, there will be errors" If you have ever been into programming/coding, you must have definitely come across some errors. It is very important for every programmer to be aware of such errors that occur while coding. Table of Content 1. Syntax errors:Â 2. Logical errors:3. Runtime e 13 min read Competitive Programming - A Complete Guide Competitive Programming is a mental sport that enables you to code a given problem under provided constraints. The purpose of this article is to guide every individual possessing a desire to excel in this sport. This article provides a detailed syllabus for Competitive Programming designed by indust 8 min read Why is programming important for first year or school students? Although computer programming was once seen as a skill reserved for geeks and computer nerds, itâs now regarded as an essential ability for 21st century learners and is becoming a key component of many curriculums, even in primary schools. And as it is becoming essential to learning programming basi 6 min read Queue for Competitive Programming In competitive programming, a queue is a data structure that is often used to solve problems that involve tasks that need to be completed in a specific order. This article explores the queue data structure and identifies its role as a critical tool for overcoming coding challenges in competitive pro 8 min read Competitive Programming vs General Programming Programming enthusiasts face a crossroads - Competitive Programming or General Programming? This article sheds light on the distinctions between Competitive Programming vs General Programming, offering a quick guide for those navigating the coding landscape. Whether you're aiming for speed and preci 3 min read What should I learn first, C++ STL or DSA? C++ Standard Template Library (STL) is like a toolbox in programming, full of pre-made tools for common tasks. It provides ready-to-use classes and functions, making coding faster and easier. On the other hand, Data Structures and Algorithms (DSA) are like the building blocks of smart code. They tea 7 min read How to begin with Competitive Programming? At the very beginning of competitive programming, barely anyone knew the coding style to be followed. Below is an example to help you understand how problems are crafted in competitive programming.Let us consider below problem statement as an example. Problem Statement Linear Search: Given an intege 10 min read Like