Queue Continued...
Queue
Similar to a stack, the queue also limits the position for inserting and removing am operation on a sequence of data. However, unlike a stack, a queue follows the first in, first out (FIFO) principle.
In Python, a queue can also be implemented using a list. To follow the FIFO principle, the inserting operation occurs at the tail of the list, while the removing operation occurs at the head of the list.Python implementation of a queue
Table of Contents
Queue - An introduction
A Queue is a linear data structure in which data is stored in a First In, First Out manner. In a queue, the item that was added the earliest is removed first. The item that was added more recently is removed last. A queue can be compared to a real-life queue.

enqueue is a queue operation where you add an item at the back of a queue.
dequeue is a queue operation where you remove an item from the front of a queue.
Uses of Queues
Operating Systems - often maintain queues while implementing various low-level operations such as CPU Scheduling, Disk Scheduling, etc.
Hardware - hardware interrupts are handled using queues.
Internet - Website traffic handling.
And all other scenarios where a First In, First Out priority has to be implemented.
Implementing Queues
Queue Methods
queue.Enqueue()
The
queue.Enqueue()method adds an element at the rear of the queue.Time Complexity -> O(1)
queue.Dequeue()
The
queue.Dequeue()method removes an element from the front of the queue.Time Complexity -> O(1)
queue.Front()
The
queue.Front()method returns the front item from the queue.Time Complexity -> O(1)
queue.Rear()
The
queue.Rear()method returns the rear item from the queue.Time Complexity -> O(1)
queue.isEmpty()
The
queue.isEmpty()method returnsTrueif the queue is empty, else returnsFalse.Time Complexity -> O(1)
Queues can be implemented in various ways. Let us look at how to implement a queue using a list and using the collections.deque module in Python.
Queue using a List
We can use the list methods insert and pop to implement a queue.
class Queue:
    def __init__(self):
        """
        Initializing Queue.
        """
        self.queue = []
    def isEmpty(self) -> bool:
        return True if len(self.queue) == 0 else False
    def front(self) -> int:
        return self.queue[-1]
    def rear(self) -> int:
        return self.queue[0]
    def enqueue(self, x: int) -> None:
        self.x = x
        self.queue.insert(0, x)       
    def dequeue(self) -> None:
        self.queue.pop()Queue using collections.Deque
The deque class from the python collections module can also be used to implement a queue. This method of implementing a queue is far more efficient because deque provides faster enqueue and dequeue operations.
from collections import deque
class Queue:
    def __init__(self):
        """
        Initializing Queue.
        """
        self.queue = deque()
    def isEmpty(self) -> bool:
        return True if len(self.queue) == 0 else False
    def front(self) -> int:
        return self.queue[-1]
    def rear(self) -> int:
        return self.queue[0]
    def enqueue(self, x: int) -> None:
        self.x = x
        self.queue.append(x)       
    def dequeue(self) -> None:
        self.queue.popleft()Practice Queues
Try implementing the queue in Python first. Then once you’re done with the implementation, try solving these problems on HackerRank and LeetCode
Reversing a Queue - GeeksforGeeks
Sort the Queue using Recursion - GeeksforGeeks
Reversing First K Elements of the Queue - GeeksforGeeks
Implementing Stack using Queues - GeeksforGeeks
Queries with Fixed Length - HackerRank
Truck Tour - HackerRank
Maximum Sum of Triangle No Less Than K - LeetCode
Design Circular Queue - LeetCode
Design Circular Dequeue - LeetCode
Last updated