#include <iostream>
#include <string>
#include <stack>
using namespace std;
//没写过,看了下百度的后缀表达式介绍,凑活着用吧。。。
void main()
{
string exp("(d*e+f)*g");
stack<char> cstk;
string res;
for(string::iterator it = exp.begin(); it!=exp.end(); ++it)
{
switch(*it)
{
//低级运算符,出栈高级运算符,再入栈
case '+':
case '-':
{
char tmp;
while(!cstk.empty())
{
tmp = cstk.top();
if(tmp=='*'||tmp=='/')
{
res.push_back(tmp);//出栈写入后缀表达式
cstk.pop();
}
else
break;
}
cstk.push(*it);//低级运算符入栈
break;
}
//高级运算符和左括号直接入栈
case '(':
case '*':
case '/':
#include <string>
#include <stack>
using namespace std;
//没写过,看了下百度的后缀表达式介绍,凑活着用吧。。。
void main()
{
string exp("(d*e+f)*g");
stack<char> cstk;
string res;
for(string::iterator it = exp.begin(); it!=exp.end(); ++it)
{
switch(*it)
{
//低级运算符,出栈高级运算符,再入栈
case '+':
case '-':
{
char tmp;
while(!cstk.empty())
{
tmp = cstk.top();
if(tmp=='*'||tmp=='/')
{
res.push_back(tmp);//出栈写入后缀表达式
cstk.pop();
}
else
break;
}
cstk.push(*it);//低级运算符入栈
break;
}
//高级运算符和左括号直接入栈
case '(':
case '*':
case '/':


