棧的應用2---後綴表達式

計算機是如何基於後綴表達式計算的?算法

eg: 931-5*+遍歷

對於數字:進棧計算機

對於符號:數字

  從棧中彈出右操做數;運算符

  從棧中彈出作操做數;

  根據符號進行運算;

  將運行結果壓入棧中;

遍歷結束:棧中惟一數字爲計算結果;

 中綴轉後綴算法:

對於數字直接輸出;

對於符號:

  左括號:進棧;

  運算符號(分兩種狀況:) 與棧頂比較優先級

    若棧頂符號優先級低:此時符號進棧(默認棧頂如果作括號,左括號優先級最低);

    若棧頂符號優先級不低:將棧頂符號彈出並輸出,以後進棧。

  右括號: 將棧頂符號彈出並輸出,知道匹配到左括號;

遍歷結束:

  將戰中的全部符號彈出並輸出。

相關文章
相關標籤/搜索