#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
class stack
{public:
int top,t,c[3],z,i,j;
char a[50],b;
void push(char c);
char pop();
void check(char d);
};
void stack::push(char c)
{a[++top]=c;
t=top;
}
char stack::pop()
{c[0]=a[top--]-48;
c[1]=a[top--];
c[2]=a[top--]-48;
if(c[1]=='-')
z=c[2]-c[0];
else if(c[1]=='+')
z=c[2]+c[0];
else if(c[1]=='*')
z=c[2]*c[0];
else
z=c[2]/c[0];
b=z+48;
push(b);
if(i==j);
else check(a[i]);
}
void stack::check(char d)
{--t;
switch(d)
{case '+':
case '-':if(t<0)
push(d);
else
pop();
break;
case '*':
case '/':if(a[t]=='*' || a[t]=='/')
pop();
else
push(d);
break;
default :push(d);
break;
}
}
int main()
{stack s;s.top=-1;s.t=-1;
int k;
cout<<"Enter the infix:\n";
cin.getline(s.a,50);
s.j=strlen(s.a);
for(s.i=0;s.i<s.j;s.i++)
{s.check(s.a[s.i]);
}
while(s.top>0)
{s.pop();
}
cout<<"Hence the ans is:";
k=s.a[0]-48;
cout<<k;
}
#include<cstring>
#include<cstdlib>
using namespace std;
class stack
{public:
int top,t,c[3],z,i,j;
char a[50],b;
void push(char c);
char pop();
void check(char d);
};
void stack::push(char c)
{a[++top]=c;
t=top;
}
char stack::pop()
{c[0]=a[top--]-48;
c[1]=a[top--];
c[2]=a[top--]-48;
if(c[1]=='-')
z=c[2]-c[0];
else if(c[1]=='+')
z=c[2]+c[0];
else if(c[1]=='*')
z=c[2]*c[0];
else
z=c[2]/c[0];
b=z+48;
push(b);
if(i==j);
else check(a[i]);
}
void stack::check(char d)
{--t;
switch(d)
{case '+':
case '-':if(t<0)
push(d);
else
pop();
break;
case '*':
case '/':if(a[t]=='*' || a[t]=='/')
pop();
else
push(d);
break;
default :push(d);
break;
}
}
int main()
{stack s;s.top=-1;s.t=-1;
int k;
cout<<"Enter the infix:\n";
cin.getline(s.a,50);
s.j=strlen(s.a);
for(s.i=0;s.i<s.j;s.i++)
{s.check(s.a[s.i]);
}
while(s.top>0)
{s.pop();
}
cout<<"Hence the ans is:";
k=s.a[0]-48;
cout<<k;
}
No comments:
Post a Comment