#中缀转后缀并计算值
输入一个包含+、-、*、和圆括号地正确表达式,输出表达式、它的后缀表达式和计算后的值。
思路:将输入的计算表达式存放在一个string中,在利用字串的功能将计算表达式中的数字和操作符分开存放在vector容器中,然后将中缀转换成后缀,利用栈来计算表达式。
#include <stdio.h>
#include<stack>
#include<vector>
#include<sstream>
#include<string>
using namespace std;
vector<string> covertingInfixToRPN(vector<string>& exp) //中缀转后缀
{
vector<string> c;
stack<string> op;
string ch;
for(int i=0;i<exp.size();i++)
{
if(exp[i] =="(")
op.push(exp[i]);
else if(exp[i] ==")")
while(1)
{
ch = op.top();
op.pop();
if(ch != "(")
c.push_back(ch);
else
break;
}
else if(exp[i] =="+" || exp[i] =="-")
{
while(op.size()>0 && op.top() != "(")
{
c.push_back(op.top());
op.pop();