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