/*C program to evaluate the given postfix expression*/
# include<stdio.h>
# include<conio.h>
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);
}
int 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*/
/* Output of Postfix Expression Evaluation Program */
For more related to Data Structure see List of Data Structure Programs. If you like this program, Please share and comment to improve this blog.
# include<stdio.h>
# include<conio.h>
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);
}
int 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*/
/* Output of Postfix Expression Evaluation Program */
Output of Postfix Expression Program |
For more related to Data Structure see List of Data Structure Programs. If you like this program, Please share and comment to improve this blog.
No comments:
Post a Comment