Skip to main content

Evaluation of Postfix

Task: Find the final value of given postfix expression.

Example:
Input:
1
123+*8-
Output:
-3

Here is the Code:
Program in C++:

  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. int evalutionOfPostfix(string s)
  5. {
  6.     stack<int> st;
  7.     int a,b,c;
  8.     for(int i=0;i<s.length();i++)
  9.     {
  10.         if(isdigit(s[i]))
  11.         {
  12.             st.push((s[i] - '0'));
  13.         }
  14.         else
  15.         {
  16.             b=st.top();
  17.             st.pop();
  18.             a=st.top();
  19.             st.pop();
  20.             if(s[i]=='*')
  21.             {
  22.                 c=a*b;
  23.             }
  24.             else if(s[i]=='/')
  25.             {
  26.                 c=a/b;
  27.             }
  28.             else if(s[i]=='+')
  29.             {
  30.                 c=a+b;
  31.             }
  32.             else
  33.             {
  34.                 c=a-b;
  35.             }
  36.             st.push(c);
  37.         }
  38.     }
  39.     cout<<st.top()<<endl;
  40.     st.pop();
  41. }
  42. int main()
  43.  {
  44. int t;
  45. cin>>t;
  46. while(t--)
  47. {
  48.     string s;
  49.     cin>>s;
  50.     evalutionOfPostfix(s);
  51. }
  52. return 0;
  53. }

Here is the Video: