Tuesday, February 13, 2024

17. WAP to reverse the order of the elements in the stack using additional Queue.

 17. WAP to reverse the order of the elements in the stack using additional Queue. 

PROGRAME CODE

#include<stdio.h>

#include<iostream>

using namespace std;

class stack_rev{

            int *arr,top,size,*arr1,front,rear;

            public:

                        stack_rev(){

                                    arr=NULL;

                                    arr1=NULL;

                                    top=-1;

                                    size=0;

                                    front=0;

                                    rear=-1;

                        }

                        void getdata(){

                                    cout<<"ENTER THE LENGTH OF THE STACK ->"<<endl;

                                    cin>>size;

                                    arr=new int[size];

                                    arr1=new int[size];

                        }

                        void push(){

                                    if(top==(size-1))

                                                cout<<"THE STACK OVERFLOW...."<<endl;

                                    else{

                                                top++;

                                                cout<<"ENTER THE DATA ->"<<endl;

                                                cin>>arr[top];

                                    }

                        }

                        void stack_rev1(){

                                    if(rear==(top-1)&&front==0)

                                                cout<<"THE QUEUE IS OVER FLOW...."<<endl;

                                    else{

                                                while(top>=0){

                                                            rear++;

                                                            arr1[rear]=arr[top];

                                                            top--;

                                                }

                                    }

                        }

                        void display(){

                                    cout<<"THE ORIGINAL STACK IS->"<<endl;

                                    int x=top+1;

                                    while(--x>=0)

                                                cout<<arr[x]<<endl;

                        }

                        void display1(){

                                    cout<<"THE REVERSE STACK ->"<<endl;

                                    int x=rear+1;

                                    while(--x>=front)

                                                cout<<arr1[x]<<endl;

                        }

};

int main(){

            stack_rev ob;

            int opt=0;

            do{

                        cout<<"\nPRESS 0 TO EXIT ......"<<endl;

                        cout<<"PRESS 1 TO SET STACK LENGTH ......"<<endl;

                        cout<<"PRESS 2 TO ENTER DATA IN STACK .........."<<endl;

                        cout<<"PRESS 3 TO DISPLAY THE STACK......."<<endl;

                        cout<<"PRESS 4 TO REVERSE THE STACK ......"<<endl;

                        cout<<"PRESS 5 TO PRINT THE REVERSE OF THE STACK..........."<<endl;

                        cin>>opt;

                        switch(opt){

                                    case 0:

                                                break;

                                    case 1:

                                                ob.getdata();

                                                break;

                                    case 2:

                                                ob.push();

                                                break;

                                    case 3:

                                                ob.display();

                                                break;

                                    case 4:

                                                ob.stack_rev1();

                                                cout<<"REVERSE SUCESSFULL ....."<<endl;

                                                break;

                                    case 5:

                                                ob.display1();

                                                break;

                                    default:

                                                cout<<"ERROR OPTION CHOICE........."<<endl;

                        }

            }while(opt!=0);

            return 0;

}

 


No comments:

Post a Comment