1. What Is a Queue?
A Queue is a linear data structure that follows the principle:
FIFO – First In, First Out
So many people are already benefiting from this software development course
This means:
- The first element added is the first one removed
- Just like a real-life queue (bank line, food line)
Example (Real-Life Analogy)
People in line: A → B → C → D
Served first: A
2. Basic Operations of a Queue
| Operation | Description |
|---|---|
enqueue | Add an element to the rear |
dequeue | Remove an element from the front |
front | Get the front element |
back | Get the last element |
isEmpty | Check if queue is empty |
size | Number of elements |
3. Queue in C++ (STL)
C++ provides the queue container in the Standard Template Library (STL).
Header File
#include <queue>
Declaration
queue<int> q;
4. Basic Queue Example
#include <iostream>
#include <queue>
using namespace std;
int main() {
queue<int> q;
q.push(10); // enqueue
q.push(20);
q.push(30);
cout << "Front: " << q.front() << endl; // 10
cout << "Back: " << q.back() << endl; // 30
q.pop(); // dequeue
cout << "Front after pop: " << q.front() << endl; // 20
cout << "Size: " << q.size() << endl;
return 0;
}
5. Queue Functions Explained
| Function | Purpose |
|---|---|
push(x) | Insert element at rear |
pop() | Remove front element |
front() | Access first element |
back() | Access last element |
empty() | Returns true if empty |
size() | Returns number of elements |
6. Visual Representation
Queue (FIFO)
Front → [10] [20] [30] ← Rear
pop() removes 10
7. Internal Working of STL Queue
- STL
queueis implemented using:deque(default)- Can also be implemented with
list
queue<int, deque<int>> q;
queue<int, list<int>> q;
❗ You cannot access elements randomly (no indexing like arrays).
8. Types of Queues
1. Simple Queue
Basic FIFO structure.
2. Circular Queue
- Rear connects back to front
- Efficient memory usage
- Used in CPU scheduling
3. Priority Queue
Elements served based on priority, not order.
#include <queue>
priority_queue<int> pq;
pq.push(10);
pq.push(50);
pq.push(20);
// Top = 50
Max Heap by default
4. Double-Ended Queue (Deque)
Insert/remove from both ends.
#include <deque>
deque<int> dq;
dq.push_front(10);
dq.push_back(20);
9. Implementing Queue Using Array (Manual)
#define SIZE 5
int arr[SIZE];
int front = -1, rear = -1;
Enqueue
void enqueue(int x) {
if (rear == SIZE - 1)
cout << "Queue Overflow";
else {
if (front == -1) front = 0;
arr[++rear] = x;
}
}
Dequeue
void dequeue() {
if (front == -1 || front > rear)
cout << "Queue Underflow";
else
front++;
}
10. Implementing Queue Using Linked List
- Each node has:
datanext
Advantages:
- Dynamic size
- No overflow (until memory full)
11. Time & Space Complexity
| Operation | Time Complexity |
|---|---|
| Enqueue | O(1) |
| Dequeue | O(1) |
| Front/Back | O(1) |
Space Complexity:
- O(n)
12. Applications of Queue
✔ CPU Scheduling
✔ Breadth-First Search (BFS)
✔ Print Queue
✔ Call Center Systems
✔ Message Queues
✔ Order Processing Systems
13. Queue vs Stack
| Stack | Queue |
|---|---|
| LIFO | FIFO |
| Push/Pop | Enqueue/Dequeue |
| Used in recursion | Used in scheduling |
14. Common Mistakes
❌ Accessing queue elements using index
❌ Calling front() on empty queue
❌ Forgetting #include <queue>
15. When to Use Queue?
Use a queue when:
- Order of processing matters
- Tasks must be handled sequentially
- Fair scheduling is required
Summary
A queue in C++ is:
- A FIFO data structure
- Provided by STL for efficiency
- Essential for algorithms and system design

Latest tech news and coding tips.