中缀转后缀表达式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中缀转后缀表达式
中缀表达式是我们平时最常见的表达式形式,例如:1 + 2 * 3。


是在计算机中,我们更常使用后缀表达式来进行计算。

因此,将中缀
表达式转换为后缀表达式是非常重要的。

一、中缀表达式
中缀表达式是指运算符位于两个操作数之间的表达式。

例如:1 + 2 * 3。

在中缀表达式中,运算符的优先级是由括号来确定的。

括号内的表达
式优先计算,同级别的运算符按照从左到右的顺序计算。

二、后缀表达式
后缀表达式是指运算符位于两个操作数之后的表达式。

例如:1 2 3 * +。

在后缀表达式中,运算符的优先级是由运算符本身来确定的。

同级别
的运算符按照从左到右的顺序计算。

三、中缀转后缀
中缀表达式转换为后缀表达式的过程可以使用栈来实现。

具体步骤如下:
1. 初始化两个栈:运算符栈和结果栈。

2. 从左到右扫描中缀表达式。

3. 如果遇到操作数,直接将其压入结果栈。

4. 如果遇到运算符,比较其与运算符栈栈顶的优先级。

5. 如果运算符栈为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈。

6. 否则,若优先级比栈顶运算符的优先级高或相等,也将运算符压入运算符栈。

7. 否则,将运算符栈顶的运算符弹出并压入结果栈中,再次转到步骤4与新的栈顶运算符比较。

8. 如果遇到括号,如果是左括号“(”,则直接压入运算符栈;如果是右括号“)”,则依次弹出运算符栈顶的运算符,并压入结果栈中,直到遇到左括号为止,此时将这一对括号丢弃。

9. 重复步骤2至8,直到表达式的最右边。

10. 将运算符栈中剩余的运算符依次弹出并压入结果栈中。

11. 最后将结果栈中的元素依次弹出,即可得到后缀表达式。

四、总结
中缀表达式转换为后缀表达式是一个非常重要的算法,它可以使我们
更方便地进行计算。

在实际应用中,我们可以使用栈来实现这个算法。

通过这个算法的学习,我们可以更深入地理解计算机中的表达式计算
过程。

相关文档
最新文档