已知中缀表达式,求其后缀表达式,请举一例子说明,

1个回答

  • 比如:

    (1+2)*3-4*(5-6)+1-8

    先按照优先级把所有括号加上:

    当优先级相同如A+B+C 加括号从左边加到右边:((A+B)+C)

    (((((1+2)*3)-(4*(5-6)))+1)-8)

    从内括号起,把每个括号里的运算符提到当前括号的最前面,

    比如(A+B) -> (+AB)

    再比如(A*(B+C)) -> (*A(+BC))

    故有(-(+(-(*(+12)3)(*4(-56)))1)8)

    把括号去掉,就是对应的后缀式:

    -+-*+123*4-5618