Skip to main content

Reversing a stack using recursion

#include<bits/stdc++.h>
using namespace std;
stack<int> s2;
void rev(stack<int> s)
{
    if(!s.empty())
    {
        int temp=s.top();
        s.pop();
        s2.push(temp);
        rev(s);
    }
}
void display(stack<int> s)
{
    while(!s.empty())
    {
        cout<<s.top()<<" ";
        s.pop();
    }
    cout<<endl;
}
int main()
{
     stack<int> s;
     int n;
     cout<<"Enter the number of elements to push onto stack"<<endl;
     cin>>n;
     for (int i = 0; i < n; ++i)
     {
         /* code */
         int x;
         cin>>x;
         s.push(x);
     }
     display(s);
     rev(s);
     display(s2);
     return 0;
}

Comments

Popular posts from this blog

Finding permutations of a string using recursion

#include<bits/stdc++.h> using namespace std; void print_perm(char str[],int k,int n) {     if(k==n)         cout<<str<<endl;     else     {         for(int i=k;i<n;i++)         {             swap(str[k],str[i]);             print_perm(str,k+1,n);             swap(str[k],str[i]);         }     } } int main() {     char str[20];     cout<<"Enter a string"<<endl;     cin>>str;     print_perm(str,0,strlen(str));     return 0; }

Gcd using recursion

#include<iostream> #include<algorithm> using namespace std; int gcd(int m,int n) {     if(max(m,n)%min(m,n)==0)     {         return min(m,n);     }     else     {         gcd(max(m,n)%min(m,n),min(m,n));     } } int main() {     int m,n;     cin>>m>>n;     cout<<gcd(m,n);     return 0; }