中綴表達式轉后綴表達式


轉自:https://blog.csdn.net/iteye_4185/article/details/82574934

1.假定有中綴表達式1 + (( 2 + 3)* 4 ) – 5,請將它轉化為后綴表達式。

方法一:利用表達式樹

方法二:利用輔助棧

從左到右遍歷中綴表達式的每個操作數和操作符。

當讀到操作數時,立即把它輸出,即成為后綴表達式的一部分;

若讀到操作符,判斷該符號與棧頂符號的優先級,若該符號優先級高於棧頂元素,則將該操作符入棧,否則就一次把棧中運算符彈出並加到后綴表達式尾端,直到遇到優先級低於該操作符的棧元素,然后把該操作符壓入棧中。

如果遇到”(”,直接壓入棧中,如果遇到一個”)”,那么就將棧元素彈出並加到后綴表達式尾端,但左右括號並不輸出。最后,如果讀到中綴表達式的尾端,將棧元素依次完全彈出並加到后綴表達式尾端。

上述鏈接中給出了圖解。

224. 基本計算器,可練習。

 


免責聲明!

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



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