前綴、中綴、后綴表達式的相互轉換方法


前綴式、中綴式、后綴式相互轉換

一. 中綴式轉化成前綴式和后綴式:

一個中綴式到其他式子的轉換方法

這里我給出一個中綴表達式

a + b * c - ( d + e )

第一步:按照運算符的優先級對所有的運算單位加括號

​ 式子變成:( ( a + ( b * c ) ) - ( d + e ) )

第二步:轉換前綴與后綴表達式

中綴轉前綴:

運算符號移動到對應的括號前面
則變成:- ( + ( a * ( b c ) ) + ( d e ) )

把括號去掉:- + a * b c + d e 前綴式子出現

中綴轉后綴:

運算符號移動到對應的括號后面
則變成:( ( a ( b c ) * ) + ( d e ) + ) -

把括號去掉:a b c * + d e + - 后綴式子出現

二. 前綴式轉化成中綴式:

​ + a * b c + d e

從后往前遇到運算符,將其與后面兩個運算數結合,加上括號,當成新的運算數(例如:* b c 加上括號,變成 ( * b c )一個整體,作為運算數)

變成:( - ( + a ( * b c ) ) ( + d e ) )

將運算符加在括號內運算數中間。變成:

( ( a + ( b * c ) ) - ( d + e ) )

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

(最后去掉的是不影響運算式含義的多余括號)

三. 后綴式轉化成中綴式:

a b c * + d e + -

從前往后遇到運算符,將其與前面兩個運算數結合,加上括號,當成新的運算數

變成:( ( a ( b c * ) + ) ( d e + ) - )

將運算符加在括號內運算數中間。變成:

( ( a + ( b * c ) ) - ( d + e ) )

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

(最后去掉的是不影響運算式含義的多余括號)


(隨筆參考了csdn,原文https://blog.csdn.net/tomcmd/article/details/48603097,有刪改)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM