Open In App

How to Create a Stack of Deque in C++?

Last Updated : 11 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

In C++, the stack is a container in which new elements are added from one end (top) and removed from that end only whereas a deque (double-ended queue) are sequence container with the feature of expansion and contraction on both ends. In this article, we will learn how to create a stack of deque in C++.

Example:

Input: 
myDeque1 = 1, 2, 3, 4
myDeque2 = 5, 6, 7

Output:
Stack of Deque: [ {5, 6, 7},
{1, 2, 3, 4} ]

Stack of Deque in C++

To create a stack of deques in C++, we need to pass the std::deque as the template parameter in the declaration of the stack. We can then use the std::stack::push() function to insert the deque container in the stack.

Syntax to Create a Stack of Deque in C++

stack<deque<datatype>> stack_name; 

Here,

  • datatype denotes the type of data stored in the deque.
  • stack_name is the name of the stack of deque.

C++ Program to Use a Stack with a Deque

The below program demonstrates how we can create a stack of deque in C++.

C++




// C++ Program to illustrate how to crate a stack of deque
#include <deque>
#include <iostream>
#include <stack>
using namespace std;
  
int main()
{
    // Creating a stack of deques
    stack<deque<int> > stackOfDeques;
  
    // Pushing deques into the main stack (stackOfDeques)
    deque<int> d1, d2;
    d1.push_back(1);
    d1.push_back(2);
    d1.push_back(3);
    d1.push_back(4);
    d2.push_back(5);
    d2.push_back(6);
    d2.push_back(7);
  
    // push the deque in stack of deques
    stackOfDeques.push(d1);
    stackOfDeques.push(d2);
  
    // Printing elements from the stack of deques
    cout << "Elements in the Stack of Deque:" << endl;
    while (!stackOfDeques.empty()) {
        deque<int> currD = stackOfDeques.top();
        stackOfDeques.pop();
  
        while (!currD.empty()) {
            cout << currD.back() << " ";
            currD.pop_back();
        }
    }
  
    return 0;
}


Output

Elements in the Stack of Deque:
7 6 5 4 3 2 1 

Time Complexity: O(N), here N is the total number of deque.
Auxiliary Space: O(N * M), where M is the average number of elements in the deque.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads