diff --git a/stack_problems/evaluate_postfix_expression.cpp b/stack_problems/evaluate_postfix_expression.cpp new file mode 100644 index 0000000..bcb380c --- /dev/null +++ b/stack_problems/evaluate_postfix_expression.cpp @@ -0,0 +1,56 @@ +//Program to evaluate postfix expression +#include +using namespace std; +int isOperator(char x){ + if(x=='+'||x=='-'||x=='*'||x=='/') + return 1; + else + return 0; +} +int main() { + int T;//Number of expressions you want to evaluate + int R=0,result; + cin>>T; + for(int i=0;i>s; + vectorsp; + for(int j=0;s[j]!='\0';j++){ + + if(isOperator(s[j])){ + int r=(int)sp.back(); + sp.pop_back(); + int l=(int)sp.back(); + sp.pop_back(); + switch(s[j]){ + case '+':R=l+r; + break; + case '-':R=l-r; + break; + case '*':R=l*r; + break; + case '/':R=l/r; + break; + + } + sp.push_back(R); + + } + else{ + sp.push_back(s[j]-'0'); + } + } + result=sp.back(); + cout<