好故事慢慢来 发表于 2023-6-15 19:29:25

表达式问题

前缀表达式,中缀表达式,和后缀表达式分别是什么,能举个例子说明吗

isdkz 发表于 2023-6-15 19:31:34

前缀表达式、中缀表达式和后缀表达式都是用来描述和表示算数表达式的方法。这三种表示法之间的主要区别在于运算符的位置。

1. 前缀表达式(Prefix notation):也被称为波兰记法,运算符位于其操作数之前。例如,前缀表达式"+ A B"等价于中缀表达式"A + B"。

2. 中缀表达式(Infix notation):这是我们最常见的表示法,运算符位于两个操作数之间。例如,"A + B"。

3. 后缀表达式(Postfix notation):也被称为逆波兰记法,运算符位于其操作数之后。例如,后缀表达式"A B +"等价于中缀表达式"A + B"。

这三种表示法的一个主要区别是,前缀和后缀表示法不需要使用括号来指示运算的优先级,因为它们的优先级是由它们的位置来决定的。

让我们用一个复杂的表达式做为例子来说明这一点。假设我们有中缀表达式"A - B * C + D"。

· 在前缀表示法中,这个表达式将被表示为"+ - A * B C D"。首先,“- A * B C”表示“A - (B * C)”,然后我们将结果与D相加。

· 在后缀表示法中,这个表达式将被表示为"A B C * - D +"。首先,“B C *”表示“B * C”,然后我们从A中减去结果,最后我们将结果与D相加。

可以看到,前缀和后缀表示法不需要括号就可以明确地表示出运算的优先级。而在中缀表达式中,我们需要使用括号来明确指示" B * C"应该先于"A - …"和"… + D"执行。
页: [1]
查看完整版本: 表达式问题