1.准备好一个栈
2.当给出一个字符串 需要你将元素push的时候 如果这个字符是整数的话 可以直接输出
3.当遇到操作符的时候,一定要比较 比较 比较 (重要的事情说三遍) 在操作符的栈里面一定要满足一个条件 就是从顶到底优先级必须严格减小
4.接着就是对于括号的处理,如果遇到的是左括号,直接入栈 遇到右括号,不断取出栈顶元素,直到取到左括号
5.输出栈中的所有元素。
//逆波兰式 #includeusing namespace std; int youxian(char op) { if (op=='+' || op=='-') { return 1; } if(op=='*' || op=='/') { return 2; } if(op=='(') { return 0; } } int main() { int num=0; string s1=""; stack op; string s; s="2+4*8+(8*8+1)/3"; for(int i=0;i youxian(op.top())) { op.push(s[i]); } else { while(youxian(s[i])<=youxian(op.top())) { s1+=op.top(); op.pop(); } op.push(s[i]); } } } } while(!op.empty()) { s1+=op.top(); op.pop(); } cout< 自己打的一段后缀表达式 还是比较好理解的



