計算機是如何基於後綴表達式計算的?算法
eg: 931-5*+遍歷
對於數字:進棧計算機
對於符號:數字
從棧中彈出右操做數;運算符
從棧中彈出作操做數;
根據符號進行運算;
將運行結果壓入棧中;
遍歷結束:棧中惟一數字爲計算結果;
中綴轉後綴算法:
對於數字直接輸出;
對於符號:
左括號:進棧;
運算符號(分兩種狀況:) 與棧頂比較優先級
若棧頂符號優先級低:此時符號進棧(默認棧頂如果作括號,左括號優先級最低);
若棧頂符號優先級不低:將棧頂符號彈出並輸出,以後進棧。
右括號: 將棧頂符號彈出並輸出,知道匹配到左括號;
遍歷結束:
將戰中的全部符號彈出並輸出。