cl1p.net - The internet clipboard
Login/Sign Up
cl1p.net/postfix
cl1p.net/postfix
Login/Sign Up
This cl1p will be deleted in in 11 days.
Copy
#include
#include
#include
typedef struct stack { int s[100]; int top; }STACK; void evaluation(char *,STACK *); int pop(STACK *); void push(STACK *,float ele); int main(void) { STACK *S1; S1=(STACK *)malloc(sizeof(STACK)); S1->top = -1; char postfix[100]; printf("Enter postfix expression\n"); scanf("%[^\n]c", postfix); evaluation(postfix, S1); } void evaluation(char *postfix, STACK *S1) { char ch; while(*postfix!='\0') { ch= *postfix; if(isdigit(ch)) { push(S1, ch-'0'); } else { int op2 = pop(S1); int op1 = pop(S1); switch(ch) { case '+' : push(S1, op1+op2); break; case '-' : push(S1, op1-op2); break; case '*' : push(S1, op1*op2); break; case '/' : push(S1, op1/op2); break; case '%' : push(S1, op1%op2); break; } } postfix++; } printf("Value of entered expression is %d\n", S1->S[S1->top]); } void push(STACK *S1, float ele) { S1->top++; S1->S[S->top] = ele; } int pop(STACK *S1); { if(S1->top==-1) { printf("Entered exp. is wrong\n"); exit(1); } int ele; ele = S1->S[S1->top]; S1->top--; return ele; }