0
5.1kviews
Write a program in C to evaluate postfix expression using STACK ADT

Topic: Application of Stack

Difficulty: High

Year(Marks): May2018(10 mks)

1 Answer
0
373views
        #include<stdio.h>
        #include<conio.h>

        int stack[20];
        int top = -1;

        void push(int x)
        {
            stack[++top] = x;
        }
        int pop()
        {
            return stack[top--];
        }

        void main()
        {
            char exp[20];
            char *e;
            int n1,n2,n3,num;
            clrscr();
            printf("Enter the expression :: ");
            scanf("%s",exp);
            e = exp;
            while(*e != '\0')
            {
                if(isdigit(*e))
                {
                    num = *e - 48;
                    push(num);
                }
                else
                {
                    n1 = pop();
                    n2 = pop();
                    switch(*e)
                    {
                        case '+':
                        {
                            n3 = n1 + n2;
                    break;
                        }
                        case '-':
                        {
                            n3 = n2 - n1;
                            break;
                        }
                        case '*':
                        {
                            n3 = n1 * n2;
                            break;
                        }
                        case '/':
                        {
                            n3 = n2 / n1;
                            break;
                        }
                    }
                    push(n3);
                }
                e++;
            }
            printf("\nThe result of expression %s  =  %d\n\n",exp,pop());
            getch();
        }
Please log in to add an answer.