美文网首页
2021-04-16

2021-04-16

作者: hananan | 来源:发表于2021-04-16 17:19 被阅读0次

    关于:前序、中序、后序表达式

    优先级:每个运算符都有一个优先级,高优先级的运算符优先低优先级的运算符;

    唯一能够改变运算顺序的就是括号

    乘法和除法的优先级高于加法和减法;

    A + B * C + D 可以被写成 ((A + (B * C ))+ D)A + B +  C + D 可以被写成(((A + B) + C ) + D);这种写法称为完全括号表达式

    中序表达式:B * C;运算符在操作数中间;

    前序表达式:* BC;运算符在操作数前边;

    后序表达式:BC *;运算符在操作数后边;

    因此 A + B * C 可以写成:

    前序表达式:+ A * BC;* 出现在BC之前,代表他的优先级高;

    后续表达式:ABC * +;* 紧跟着BC出现,代表他的优先级高;

    (A + B) *  C 可以写成:

    前序表达式:* + ABC; + 出现在BC之前,代表他的优先级高;

    后续表达式:AB + C *;+紧跟BC出现,代表他的优先级高;

    以下是个例子

    中序表达式        前序表达式        后序表达式

    A + B * C + D        + + A * BCD        ABC * + D +

    转化

    使用完全括号表达式

    A + B * C  ==> ( A + ( B * C))

    转化为后序表达式,只需要将(B * C)中 * 运算符移动到右括号的位置,并去掉对应的左括号,+也移动到对应右括号并去掉对应左括号即可;

    转化为前序表达式,只需要将(B * C) 中 * 运算符移动到左括号的位置,并去掉对应的右括号,+ 也移动到对应左括号并去掉对应右括号即可;

    如下图所示

    例如

     (A + B) * C - (D - E) * (F + G)  ==> (((A + B) * C) - ((D - E) * (F + G)))

    对应

    前序表达式- * + ABC * - DE + FG

    后序表达式AB + C * DE - FG + * -

    相关文章

      网友评论

          本文标题:2021-04-16

          本文链接:https://www.haomeiwen.com/subject/srwelltx.html