JS實現逆波蘭表示式

2021-09-27 07:26:47 字數 2519 閱讀 6527

常見的算術表示式,稱為中綴表示式,例如:

5 + ( 6 – 4 / 2 ) * 3
波蘭表示式也稱為字首表示式,以上面的例子為例,其波蘭表示式為:

+ 5 * - 6 / 4 2 3
(1)首先設定乙個操作符棧,從右到左順序掃瞄整個中綴表示式:

(2)當掃瞄完畢整個中綴表示式後,檢測操作符棧是否為空,如果不為空,則依次將棧中操作符彈棧,歸入字首表示式。

(3)最後,將字首表示式翻轉,得到中綴表示式對應的字首表示式。

對字首表示式從後向前掃瞄,設定乙個運算元棧,如果是運算元,則將其直接入棧。

如果是操作符,則從棧中彈出操作符對應的運算元進行運算,並將計算結果壓棧。

直至從右到左掃瞄完畢整個字首表示式,這時運算元棧中應該只有乙個元素,該元素的值則為字首表示式的計算結果。

逆波蘭表示式也稱為字尾表示式,以上面的例子為例,其逆波蘭表示式為:

5 6 4 2 / - 3 * +
(1)自右向左順序掃瞄整個中綴表示式;

(2)當掃瞄完畢整個中綴表示式後,檢測操作符棧是否為空,如果不為空,則依次將棧中操作符彈棧,歸入字尾表示式。

從左到右順序掃瞄整個字尾表示式;

如果是運算元,則將該運算元壓入到棧中;

如果是操作符,則從棧中彈出對應的運算元,注意運算元的順序;根據操作符進行運算,並將結果重新壓入到棧中;

直至將整個棧掃瞄完畢;

如果字尾表示式是合法的,則掃瞄完畢後,棧中只有乙個元素,該元素的值即為字尾表示式的結果。

};參考:

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

js實現逆波蘭式

波蘭表示式 逆波蘭表示式

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

波蘭逆波蘭表示式

實現乙個基本的計算器來計算簡單的表示式字串。表示式字串只包含非負整數,算符 左括號 和右括號 整數除法需要 向下截斷 你可以假定給定的表示式總是有效的。所有的中間結果的範圍為 231,231 1 class solution s2.push s.substr l,r l l r 碰見符號 else ...

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

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