2021-04-16

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

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

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

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

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 + * -

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 夜莺2517阅读 127,764评论 1 9
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,615评论 28 53
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,668评论 2 9
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,233评论 4 8