GfG QA is closing soon... Please refer PRACTICE or GfG now on wards !!

to do operation of stack using two queues

//as i have written this code but i am not getting correct result.so what is the issue

#include<iostream>
using namespace std;
class queue
{
    int rear=-1,front=-1,a[100],size=100;
    public:
        int enqueue(int element)
        {
            rear=rear+1;
            if(rear<size)
            {
                a[rear]=element;
                return a[rear];
            
            }
            else
            {
                cout<<"und"<<endl;
            }
        }
        int dequeue()
        {
        front=front+1;
        if(front>=0&&a[front]!=0)
        {
        return a[front];
            a[front]=0;
            }    
            else
            {
                cout<<"underload"<<endl;
            }
        }
        bool empty()
        {
            int sum=0;
            for(int j=0;j<=rear;j++)
            {
                sum=sum+a[j];
            }
            if(sum==0)
            {
                return true;
            }
            else
            {
                return false;
            }
            
        }
        
};
class stack
{
    queue q1,q2;
    int k;
    public:
    void push(int value)
    {
        if(q1.empty()&&q2.empty())
        {
            q1.enqueue(value);
            cout<<q1.enqueue(value)<<endl;
            k=0;
        }
        else if(k==0)
        {
            q2.enqueue(value);
            while(!q1.empty())
            {
                q2.enqueue(q1.dequeue());
            }
            cout<<q2.enqueue(value)<<endl;
            
        }
        else
        {
            q1.enqueue(value);
            while(!q2.empty())
            {
                q2.enqueue(q1.dequeue());
            }
            cout<<q1.enqueue(value)<<endl;
        }
    };
    void pop()
    {
        if(q1.empty()&&q2.empty())
        {
            cout<<"sorry nothing there to delete"<<endl;
        }
        else if(!q1.empty())
        {
            cout<<q1.dequeue()<<endl;
        }
        else
        {
            cout<<q2.dequeue()<<endl;
        }
    }
};
int main()
{
    
stack s;
s.push(3);
s.push(4);


}

asked Jan 31, 2017 by vineet kumar
...