波蘭表示式 逆波蘭表示式

2021-10-03 20:39:39 字數 2018 閱讀 7658

中綴表示式是最常見的運算表示式,如:3 + 5 * (2 + 6) - 1

波蘭表示式又稱為字首表示式,它是由中綴表示式經過一定的方式轉換來的

比如中綴表示式為:3+5x(2+6)-1 對應的字首表示式為:- + 3 x 5 + 2 6 1

對於中綴表示式從右向左遍歷轉換為字首表示式,中途要是用進行儲存

轉換規則如下:

波蘭表示式**:

前提規定:假設表示式中只存在如下符號:左括號、右括號、加、減、乘、除

#include

#include

#include

#include

using namespace std;

stack<

char

> sta;

char ch[50]

,res[50]

;int ind;

intmain()

if(ch[i]

=='+'

|| ch[i]

=='-'

) sta.

push

(ch[i]);

continue;}

if(ch[i]

=='*'

|| ch[i]

=='/')if

(ch[i]

==')')if

(ch[i]

=='(')if

(!sta.

empty()

) sta.

pop();

}}while

(!sta.

empty()

)for

(int i=ind-

1;i>=0;

--i)

printf

("%c"

,res[i]);

return0;

}

逆波蘭表示式又稱為字尾表示式,由中綴表示式按照一定的方式轉換而來的

比如中綴表示式為:3+5x(2+6)-1 對應的字尾表示式為:3526+x1-+

此轉換同樣需要來儲存操作符,轉換規則如下:

逆波蘭表示式**:

#include

#include

#include

#include

using namespace std;

stack<

char

> sta;

char sour[

100]

,res[

100]

;int ind;

intmain()

if(sour[i]

>=

'0'&&sour[i]

<=

'9')

if(sour[i]

=='+'

||sour[i]

=='-'

) sta.

push

(sour[i]);

continue;}

if(sour[i]

==')'

) sta.

pop();

continue;}

if(sour[i]

=='*'

||sour[i]

=='/'

) sta.

push

(sour[i]);

}while

(!sta.

empty()

)for

(int i=

0;i++i)

printf

("%c"

,res[i]);

return0;

}

波蘭逆波蘭表示式

實現乙個基本的計算器來計算簡單的表示式字串。表示式字串只包含非負整數,算符 左括號 和右括號 整數除法需要 向下截斷 你可以假定給定的表示式總是有效的。所有的中間結果的範圍為 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...

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

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