参考:https://blog.csdn.net/qq_36254699/article/details/78824351
前缀表达式求值方法:
先将表达式入栈a,将栈a元素逐个出栈,如果是数字,直接入栈b,如果是操作符x,则b出栈2次,用t1接收第一个数,t2接收第二个数,再将t2 x t1的计算
结果压入栈b。
最后留在栈b的结果就是计算的结果。
1 #include <iostream> 2 #include <string> 3 #include <cstring> 4 #include <cmath> 5 #include <iomanip> 6 using namespace std; 7 class stk 8 { 9 public: 10 stk() :r(-1) {} 11 ~stk() {} 12 void push(double k) 13 { 14 s[++r] = k; 15 } 16 double top() 17 { 18 if (r != -1) 19 return s[r--]; 20 } 21 public: 22 double s[100]; 23 int r; 24 }; 25 int main() 26 { 27 stk digit; 28 char exp[110]; 29 cin.getline(exp, 100); 30 int Max; 31 for (Max = 0; exp[Max] != '