//SOME BODY PLEASE WRITE THIS IN C++ LANGUAGE//
//THANK YOU//
# include<stdio.h>
# include<conio.h>
/*program to evaluate the given postfix expression*/
typedef struct {
int a[100];
int top;
} STACK;
void push(STACK *s,int x)
{
if(s->top==99)
printf("STACK OVERFLOW\n");
else
s->a[++s->top]=x;
}
int pop(STACK *s)
{
int x;
if(s->top<0)
printf("STACK UNDERFLOW\n");
else {
x=s->a[s->top--];
return x;
}
}
int operation(int p1,int p2,char op)
{
switch(op) {
case '+':
return p1+p2;
case '*':
return p1*p2;
case '-':
return p1-p2;
case '/':
return p1/p2;
}
}
int evaluate(char pos[])
{
STACK s1;
int p1,p2,result,i;
s1.top=-1;
for(i=0; pos[i]!='\0'; i++)
if(isdigit(pos[i]))
push(&s1,pos[i]-'0');/*use to find the integer value of it*/
else {
p2=pop(&s1);
p1=pop(&s1);
result=operation(p1,p2,pos[i]);
push(&s1,result);
}/*end of for loop*/
return pop(&s1);
}
void main()
{
char postfix[100];
clrscr();
printf("Please Enter the VALID POSTFIX string\n\n Operands are SINGLE DIGIT\n\n");
gets(postfix);
printf("The Result is==>%d",evaluate(postfix));
getch();
}/*end of main*/
ayeshashahid 0 Newbie Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.