逆波蘭表示法是一種將運算子寫在運算元後面的描述程式( 算式 )的方法。舉個例子,我們平常用中綴表示法描述的算式( 1 +2 ) * ( 5+主要使用了棧的資料結構4 ),改為逆波蘭表示法之後則是12 + 54 +*。相較於中綴表示法,逆波蘭表示法的優勢在於不需要括號
現在我有式子 12 + 54 +* ,1 2先壓入棧,遇到運算子後,把 1 2取出來,用遇到的運算子進行運算,1 + 2 = 3;再把3壓入裡面,在壓5 4,遇到運算子+後 取出5 4 進行運算,得 9 ,在把9壓入,遇到*後 取出進行運 總結
程式在計算時從算式開頭逐一讀取字串,如果字串是運算元( 數值 )則壓人棧,如果是運算子( + 、 -*)則從棧中取出兩個數值算出結果再壓入棧,如此迴圈。 最終棧中剩下的數值便是答案
#include
#include
#include
int top,s[
1000];
void
push
(int x)
intpop()
intmain()
else
if(s[0]
=='-'
)else
if(s[0]
=='*'
)else
}printf
("%d"
,pop()
);return0;
}
逆波蘭表示法
逆波蘭表示發是一種將運算子寫在運算元後面的描述程式 算式 的方法。舉個例子,我們平常用中綴表示法描述的算式 1 2 5 4 改為逆波蘭表示法之後則是1 2 5 4 相較於中綴表示法,逆波蘭表示法的優勢在於不需要括號。請輸出以逆波蘭表示法輸入的算式的計算結果。輸入在1行中輸入1個算式。相鄰的符號 運算...
C語言棧實現逆波蘭計算器
逆波蘭計算器 輸入所要計算的表示式的逆波蘭式,並進行計算。如 1 2 4 5 其逆波蘭式 1 2 4 5 基礎的東西,還是要多敲 如下 中,輸入的格式如 1 2 4 5 include include include define stack init size 20 define stack in...
逆波蘭式 棧實現
因為做二叉樹非遞迴的前後中遍歷,用到棧的方法。xpp說那就乾脆把四則運算,逆波蘭式 棧的實現做了。這是參考別人的程式寫的,注釋比較亂。而且這個是直接實現計算機計算的四則運算,沒有將逆波蘭的表示式列印出來。今天腰太酸了,明天改一改,把逆波蘭式列印出來噻333333.棧還有迷宮演算法是不是?現在腦子裡之...