波蘭表示式的簡單演算法

2021-08-14 07:45:46 字數 968 閱讀 3732

波蘭表示式在這裡就是指運算子字首。例如2+3可以寫成+ 2 3 。除了波蘭表示式還有逆波蘭表示式,運算子字尾就是逆波蘭表示式。

今天我們用乙個簡單的例題來簡要說明一下波蘭表示式。已知乙個波蘭表示式:* + 11.0 12.0 + 24.0 35.0 (注意運算子和運算子之間,數字和運算子之間,數字和數字之間都有空格)。現在我們要求這個波蘭表示式的值?

首先分析一下波蘭表示式的定義:1.乙個數是乙個波蘭表示式,值為該數。

2.運算子(中間有空格) 波蘭表示式(中間有空格) 波蘭表示式,是乙個波蘭表示式。

*      +11.0 12.0    +24.0 35.0

從定義中可以看出波蘭表示式本身就是具有遞迴性質的。乙個波蘭表示式本身就是由乙個或多個波蘭表示式組成。而第一條定義就是跳出迴圈遞迴的條件。

#include #include #include using namespace std;

double exp()//讀入乙個波蘭表示式,並計算其值。

}int main()

**執行順序:(1)s[20]讀入運算子*,執行語句3。入棧。

(2)s[20]讀入運算子+,執行語句1。入棧。

(3)s[20]讀入數字11.0,執行語句5。入棧。

(4)s[20]讀入數字12.0,執行語句5。入棧。

(5) (4)出棧,(3)出棧,(2)出棧,12.0+11.0=23.0。

(6)s[20]讀入運算子+,執行語句1。入棧。

(7)s[20]讀入數字24.0,執行語句5。入棧。

(8)s[20]讀入數字35.0,執行語句5。入棧。

(9) (8)出棧,(7)出棧,(6)出棧,35.0+24.0=59.0。

(10) (9)出棧,(5)出棧,(1)出棧,59.0*23.0 =1357.00//輸出結果,棧為空。

**很簡單,但是理解起來還是有點困難,如果有的地方寫的不準確,請多多指教。

波蘭表示式 逆波蘭表示式

中綴表示式是最常見的運算表示式,如 3 5 2 6 1 波蘭表示式又稱為字首表示式,它是由中綴表示式經過一定的方式轉換來的 比如中綴表示式為 3 5x 2 6 1 對應的字首表示式為 3 x 5 2 6 1 對於中綴表示式從右向左遍歷轉換為字首表示式,中途要是用棧進行儲存 轉換規則如下 波蘭表示式 ...

波蘭表示式與逆波蘭表示式

2018年09月03日 11 29 15 jitwxs 閱讀數 70 標籤 波蘭 字首 更多 個人分類 演算法與資料結構 常見的算術表示式,稱為中綴表示式,例如 5 6 4 2 3波蘭表示式也稱為字首表示式,以上面的例子為例,其波蘭表示式為 5 6 4 2 3中綴表示式轉換字首表示式的操作過程為 1...

波蘭表示式和逆波蘭表示式

題目 根據逆波蘭表示法,求表示式的值。有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 示例 1 輸入 2 1 3 輸出 9 解釋 該算式轉化為常見的中綴算術表示式為 2 1 3 9 示例 2 輸入 4 13 5 輸出 6 解釋 該算式轉化為常見的中綴算術表示式為 4 13...