Infix to postfix 用stack模板,表达式没有括号
Posted KennyRom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Infix to postfix 用stack模板,表达式没有括号相关的知识,希望对你有一定的参考价值。
#include<stack> #include<iostream> #include<string> using namespace std; //优先级判断 char compare(char opt, char si) { if((opt==‘+‘||opt==‘-‘)&&(si==‘*‘||si==‘/‘) return ‘<‘; else if(opt==‘#‘) return ‘<‘; return ‘>‘; } //判断是否为运算符 bool isOp(char c) { if(c==‘+‘||c==‘-‘||c==‘*‘||c==‘/‘) return true; return false; } int main() { stack<char>op; stack<char>num; op.push(‘#‘); num.push(‘#‘); string s; cin>>s; for(int i=0;i<s.size();i++) { if(!isOp(s[i])) num.push(s[i]); else { char c=compare(op.top(),s[i]); if(c==‘<‘) op.push(s[i]); else { num.push(op.top()); op.pop(); op.push(s[i]); } } } while(op.top()!=‘#‘) { num.push(op.top()); op.pop(); } string s1=""; while(num.top!=‘#‘) { s1=s1+num.top(); num.pop(); } for(int i=0;i<s1.size()/2;i++) { char temp=s1[i]; s1[i]=s1[s1.size()-1-i]; s1[s1.size()-1-i]=temp; } cout<<s1<<endl; return 0; }
以上是关于Infix to postfix 用stack模板,表达式没有括号的主要内容,如果未能解决你的问题,请参考以下文章
How to configure postfix to send email via Gmail