编写算术表达式的方法被称为符号。一个算术表达式可以写成在三个不同的但等效的符号,即, 不改变的本质或表达的输出。这些符号是 -
- 中间符号
- 前缀(波兰)符号
- 后缀(反向波兰)符号
这些符号被命名为它们如何利用运算符表达式。我们将在这里学会这些内容。
中间符号
我们编写表达式中缀记号,例如,A-B+C,其中运算符用于在两者之间的操作数。这是很容易为我们人类所读,写和说中缀表示法,但不能使用计算设备顺利计算。用算法来处理中间符号是困难和昂贵的时间和空间消耗。
前缀表示法
在此标记,运营商的前缀操作数,即算提前写入操作数。在此标记,操作符到前缀操作数,即操作符提前写入操作数。 例如,+ab. 这相当于其中缀符号 a+b. 前缀表示法也被称为波兰表示法。
后缀表示法
这个符号风格被称为逆波兰表示法。在此标记风格,操作者后缀操作数,即,操作符是在操作数后写的。例如,ab+. 这相当于其中缀符号:a+b.
下表简要试图展示在所有三个符号的差异 −
S.n. | 中缀表示法 | 前缀表示法 | 后缀表示法 |
---|---|---|---|
1 | a + b | + a b | a b + |
2 | (a + b) * c | * + a b c | a b + c * |
3 | a * (b + c) | * a + b c | a b c + * |
4 | a / b + c / d | + / a b / c d | a b / c d / + |
5 | (a + b) * (c + d) | * + a b + c d | a b + c d + * |
6 | ((a + b) * c) - d | - * + a b c d | a b + c * d - |
解析表达式
正如我们所讨论的,它并不是设计一个算法或程序来解析中缀符号非常有效的方法。相反,这些中缀符号首先被转换成或者后缀或前缀符号,然后计算。
分析任何算术表达式,我们需要注意运算符优先级和关联性。
优先级
当一个操作数是在两个不同的操作符之间,其中操作符将先采取操作数,由操作者于其他的优先级决定。例如 -

由于乘法运算的优先级高于加法,b * c 将首先计算。运算符优先级的表格在稍后提供。
关联性
关联性描述了使用相同的优先级运算符出现在一个表达式规则。例如,在表达式 a+b−c, +和 - 都具有相同的优先级,那么该表达式的一部分将首先计算,通过这些运算符的关联性决定的。在这里,无论是 + 和 - 是左关联的,所以表达式将被计算作为 (a+b)−c.
优先级和结合,确定一个表达式的计算顺序。运算符优先级和结合表如下所示(最高到最低)−
S.n. | 操作符 | 优先级 | 关联性 |
---|---|---|---|
1 | Esponentiation ^ | 最高 | 右关联 |
2 | Multiplication ( * ) & Division ( / ) | 次高 | 左关联 |
3 | Addition ( + ) & Subtraction ( − ) | 最低 | 左关联 |
在表达式计算任何时间点,顺序可以通过使用括号所改变。 例如,
在A + B * C,表达部分:B * C将首先计算,这是由于乘法优先于加法。我们在这里使用括号,使 A + B 首先进行评估计算,如(A + B)* C。