《c波兰表达式计算.docx》由会员分享,可在线阅读,更多相关《c波兰表达式计算.docx(3页珍藏版)》请在优知文库上搜索。
1、C+波兰表达式计算波兰表达式(Polishnotation)又称前缀表达式,是一种不需要括号来表示运算优先级的算术表达式。在波兰表达式中,操作符位于操作数之前。例如,表达式”+AB表示,A+B,ro下面是一个使用C+实现波兰表达式计算的示例:ftincludeftinclude#includettinclude#includeintcalculate(conststd:string&expression)std:stacknums;std:stackops;std:mappriority=,+f,1,-f,l,f*,2,72;for(size_ti=0;iexpression.size();+
2、i)charch=expressioni;if(isdigit(ch)intnum-ch-10t;while(i+l=prioritych)intb-nums.top();nums.pop();inta-nums.top();nums.pop();charop-ops.topO;ops.pop();nums.push(priorityop=1?(a+b):(a-b);ops.push(ch);while(!ops.empty()intb-nums.top();nums.pop();inta=nums.top();nums.pop();charop-ops.top();ops.popO;nums.push(priorityop=1?(a+b):(a-b);)returnnums.top();intmain()std:stringexpression=3+5*(2-63)”;std:cout,Result:,calculate(expression)std::endl;return0;)这个程序首先定义了一个calculate函数,用于计算给定的波兰表达式。在这个函数中,我们使用两个栈分别存储操作数和操作符。然后遍历表达式中的每个字符,根据字符的类型执行相应的操作。最后,返回计算结果。