C語言實現逆波蘭表示法(棧)

2021-10-08 17:55:00 字數 800 閱讀 5057

逆波蘭表示法是一種將運算子寫在運算元後面的描述程式( 算式 )的方法。舉個例子,我們平常用中綴表示法描述的算式( 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.棧還有迷宮演算法是不是?現在腦子裡之...