#include <iostream>
#include <string>
#include <stack>
#include <vector>
using namespace std;
/*******定义优先级**********/
/**
+ - * / ( ) (进栈符号)
(栈顶符号)
+ > > < < < >
- > > < < < >
* > > > > < >
/ > > > > < >
( < < < < < <
) > > > > > >
***************************/
/******* > < 表示栈顶符号和要进栈符号的优先关系,
如果 栈顶符号的优先级>要进栈符号的优先级,执行计算;
如果 栈顶符号的优先级<要进栈符号的优先级,符号进栈***/
/*******返回栈顶符号是否优先与进栈符号*******/
bool is_prior_exe(char top, char in)
{
if(top==')') //右括号,栈顶优先级大
{
return true;
}
if(top=='(') //左括号,栈顶优先级小
{
return false;
}
if(top=='*' || top=='/')
{
if(in!='(')
{
return true;
}
else
{
return false;
}
}
if(top=='+' || top=='-')
{
if(in=='+' || in=='-' || in==')')
{
return true;
}
if(in=='*' || in=='/' || in=='(')
{
return false;
}