【数据结构与算法】【前缀表达式】前缀表达式,中缀表达式,后缀表达式互换

转载自:https://blog.csdn.net/tomcmd/article/details/48603097







一. 中缀式转化成前缀式和后缀式:

一个中缀式到其他式子的转换方法

这里我给出一个中缀表达式

a+b*c-(d+e)

第一步:按照运算符的优先级对所有的运算单位加括号

           式子变成拉:((a+(b*c))-(d+e))
第二步:转换前缀与后缀表达式
        中缀转前缀:把运算符号移动到对应的括号前面
                则变成拉:-( +(a *(bc)) +(de))
                把括号去掉:-+a*bc+de 前缀式子出现
        中缀转后缀:把运算符号移动到对应的括号后面
                则变成拉:((a(bc)* )- (de)+ )-改成:((a(bc)* )+ (de)+ )-
                把括号去掉:abc*-de+- 后缀式子出现改成:abc*+de+-

      二. 前缀式转化成中缀式:

-+a*bc+de 

从后往前遇到运算符,将其与后面两个运算数结合,加上括号,当成新的运算数

变成:(-(+a(*bc))(+de))

将运算符加在括号内运算数中间。变成:((a+(b*c))-(d+e))

去掉部分括号:a+b*c-(d+e)

       三. 后缀式转化成中缀式:

abc*+de+-

从前遇到运算符,将其与前面两个运算数结合,加上括号,当成新的运算数

变成:((a(bc*)+)(de+)-)

将运算符加在括号内运算数中间。变成:((a+(b*c))-(d+e))

去掉部分括号:a+b*c-(d+e)

        </div></div> <!----></div></div>
<script type="text/javascript" src="./dist/vendor.js"></script>
<script type="text/javascript" src="./dist/detail.js"></script>

猜你喜欢

转载自blog.csdn.net/u013718730/article/details/80233847