Queue Data Structure
Learn more about Queue in DSA Self Paced Course
Practice Problems on Queue
Top Quizzes on Queue
What is Queue Data Structure?
A Queue is defined as a linear data structure that is open at both ends and the operations are performed in First In First Out (FIFO) order.
We define a queue to be a list in which all additions to the list are made at one end, and all deletions from the list are made at the other end. The element which is first pushed into the order, the operation is first performed on that.
FIFO Principle of Queue:
- A Queue is like a line waiting to purchase tickets, where the first person in line is the first person served. (i.e. First come first serve).
- Position of the entry in a queue ready to be served, that is, the first entry that will be removed from the queue, is called the front of the queue(sometimes, head of the queue), similarly, the position of the last entry in the queue, that is, the one most recently added, is called the rear (or the tail) of the queue. See the below figure.
Characteristics of Queue:
- Queue can handle multiple data.
- We can access both ends.
- They are fast and flexible.
Like stacks, Queues can also be represented in an array: In this representation, the Queue is implemented using the array. Variables used in this case are
- Queue: the name of the array storing queue elements.
- Front: the index where the first element is stored in the array representing the queue.
- Rear: the index where the last element is stored in an array representing the queue.
Introduction to Queue Data Structure:
- Introduction to Queue – Data Structure and Algorithm Tutorials
- Implementations of Queue Data Structure using Arrays
- Implementations of Queue Data Structure using Linked List
- Applications, Advantages and Disadvantages of Queue
- Different Types of Queue
Implementation of Queue in various Programming Languages:
- Queue in C++ Standard Template Library (STL)
- Queue Interface In Java
- Queue In Python
- Queue In C#
Some other Implementations of Queue Data Structure:
- Implementation of Deque using doubly linked list
- Implement a stack using single queue
- Implement Queue using Stacks
- How to efficiently implement k Queues in a single array?
- LRU Cache Implementation
Some Must Solve Standard Problems on Queue Data Structure:
- Implement Stack using Queues
- Detect cycle in an undirected graph using BFS
- Breadth First Search or BFS for a Graph
- Traversing directory in Java using BFS
- Vertical order traversal of Binary Tree using Map
- Print Right View of a Binary Tree
- Find Minimum Depth of a Binary Tree
- Check whether a given graph is Bipartite or not
- Flatten a multilevel linked list
- Level with maximum number of nodes
- Find if there is a path between two vertices in a directed graph
- Print all nodes between two given levels in Binary Tree
- Find next right node of a given key
- Minimum steps to reach target by a Knight
- Islands in a graph using BFS
- Level order traversal line by line | Set 3 (Using One Queue)
- Find the first non-repeating character from a stream of characters
- Sliding Window Maximum (Maximum of all subarrays of size K)
- Flood Fill Algorithm
- Minimum time required to rot all oranges
- Shortest path in a Binary Maze
- An Interesting Method to Generate Binary Numbers from 1 to n
- Maximum cost path from source node to destination
- Shortest distance between two cells in a matrix or grid
- Snake and Ladder Problem
- Find shortest safe route in a path with landmines
- Count all possible walks from a source to a destination with exactly K edges
- Minimum Cost of Simple Path between two nodes in a directed and weighted graph
- Minimum Cost Path in a directed graph via given set of intermediate nodes
- Find the first circular tour that visits all petrol pumps