Deque - Double Ended Queue

Deque - Double Ended Queue

Hard C++ STL 31 views
Explanation Complexity

Problem Statement

Add/remove from both front and back.
Real Life: Line where you can join from either end.

Input Format

No user input.
Operations are performed on a deque (double-ended queue).

Output Format

Elements of deque after add and remove operations.

Example

Add 10 at front
Add 20 at back
Add 5 at front
Remove from front
Remove from back
Deque elements: 10

Constraints

• Use deque concept

• Add and remove allowed from both ends

Concept Explanation

A deque (double-ended queue) allows insertion and deletion
from both front and back.
This is like a line where people can join or leave from either end.

Step-by-Step Explanation

1.Create a deque.

2.Add element at front using push_front().

3.Add element at back using push_back().

4.Remove element from front using pop_front().

5.Remove element from back using pop_back().

6.Print remaining elements of deque.

Concept Explanation

A deque (double-ended queue) allows insertion and deletion
from both front and back.
This is like a line where people can join or leave from either end.

Step-by-Step Explanation

1.Create a deque.

2.Add element at front using push_front().

3.Add element at back using push_back().

4.Remove element from front using pop_front().

5.Remove element from back using pop_back().

6.Print remaining elements of deque.

Input / Output Format

Input Format
No user input.
Operations are performed on a deque (double-ended queue).
Output Format
Elements of deque after add and remove operations.
Constraints
• Use deque concept

• Add and remove allowed from both ends

Examples

Input:
Add 10 at front Add 20 at back Add 5 at front Remove from front Remove from back
Output:
Deque elements: 10

Example Solution (Public)

C++
void stl_q13_deque() {
    deque<int> dq;
    
    dq.push_back(20);
    dq.push_back(30);
    dq.push_front(10);
    dq.push_front(5);
    
    cout << "Deque: ";
    for(int num : dq) {
        cout << num << " ";
    }
    cout << endl;
    
    dq.pop_front();
    dq.pop_back();
    
    cout << "After removing from both ends: ";
    for(int num : dq) {
        cout << num << " ";
    }
    cout << endl;
}

Official Solution Code

void stl_q13_deque() {
    deque<int> dq;
    
    dq.push_back(20);
    dq.push_back(30);
    dq.push_front(10);
    dq.push_front(5);
    
    cout << "Deque: ";
    for(int num : dq) {
        cout << num << " ";
    }
    cout << endl;
    
    dq.pop_front();
    dq.pop_back();
    
    cout << "After removing from both ends: ";
    for(int num : dq) {
        cout << num << " ";
    }
    cout << endl;
}
Please login to submit solutions.
Editor
Output

                                        
Please login to submit solutions.