逆波兰表达式:也被称作后缀表达式,在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示。而逆波兰表达式,它的每个运算符总是和它前面的两个运算数进行结合。
接下来我们来探讨一下逆波兰表达式求值的问题。
1.确定保存形式
在这里,我们利用枚举常量巧妙地来通用所有的元素。
enum Type
{
OP_SYMBOL,
OP_NUMBER,
ADD,
SUB,
MUL,
DIV,
};
struct Cell
{
Type _type;
int _value;
};
我们给每一个逆波兰表达式中的元素有两个属性,一个类型属性,一个值属性。
2.计算结果
首先,我们当然要知道我们需要的是利用栈的数据特性来解决这个问题!
然后,接下来就是进行所谓的计算求值了,我们可以根据我们上面的所给的Cell,把逆波兰表达式保存在一个保存结构体的一个数组当中去,然后,接下来,遍历 这个数组,如果是操作数,那么就压栈ÿ