2021-04-16
2021-04-16 本文已影响0人
hananan
关于:前序、中序、后序表达式
优先级:每个运算符都有一个优先级,高优先级的运算符优先低优先级的运算符;
唯一能够改变运算顺序的就是括号;
乘法和除法的优先级高于加法和减法;
可以被写成 , 可以被写成;这种写法称为完全括号表达式
中序表达式:B * C;运算符在操作数中间;
前序表达式:* BC;运算符在操作数前边;
后序表达式:BC *;运算符在操作数后边;
因此 A + B * C 可以写成:
前序表达式:+ A * BC;* 出现在BC之前,代表他的优先级高;
后续表达式:ABC * +;* 紧跟着BC出现,代表他的优先级高;
(A + B) * C 可以写成:
前序表达式:* + ABC; + 出现在BC之前,代表他的优先级高;
后续表达式:AB + C *;+紧跟BC出现,代表他的优先级高;
以下是个例子
中序表达式 前序表达式 后序表达式
转化
使用完全括号表达式
转化为后序表达式,只需要将(B * C)中 * 运算符移动到右括号的位置,并去掉对应的左括号,+也移动到对应右括号并去掉对应左括号即可;
转化为前序表达式,只需要将(B * C) 中 * 运算符移动到左括号的位置,并去掉对应的右括号,+ 也移动到对应左括号并去掉对应右括号即可;
如下图所示
例如
对应
前序表达式:
后序表达式: