最近在学数据结构,看《数据结构与算法分析》来自学,在看到表 栈 队列这一章的时候发现后缀表达式这个比较好玩的东西,因为以前计算表达式的时候都是直接对中缀表达式进行处理,而且比较麻烦,现在有了后缀表达式的话就比较简单了,下面就是c++的实现
#include <iostream>
#include <stack>
using namespace std;
//返回各个符号的优先级,数字最大
int priority(char c)
{
if(c<='9'&&c>='0')
return 10;
else
{
switch(c)
{
case '+':
case '-':
return 1;
break;
case '*':
case '/':
return 2;
break;
case '(':
case ')':
return 3;
}
}
}
int main()
{
string exp;
cin>>exp;
stack<char> oper;
for(int i=0;i<exp.size();i++)
{
if(exp[i]==' ')
continue;
int score=priority(exp[i]);
if(score==10)//是数字的话就输出
{
cout<<exp[i];
}
else
{