中綴表達(dá)式轉(zhuǎn)后綴表達(dá)式
教材講的不明不白的,自己上網(wǎng)查了下
具體轉(zhuǎn)換方式:
1.從左到右進(jìn)行遍歷
2,遇到運(yùn)算數(shù),直接輸出.
3.遇到左括號(hào),直接壓入堆棧,除非遇到右括號(hào),不用做任何操作和比較
4.遇到右括號(hào),(意味著括號(hào)已結(jié)束)不斷彈出棧頂運(yùn)算符并輸出直到遇到左括號(hào)(彈出但不輸出)
5.遇到運(yùn)算符,將該運(yùn)算符與棧頂運(yùn)算符進(jìn)行比較,
如果運(yùn)算符優(yōu)先級(jí)高于棧頂運(yùn)算符則壓入堆棧(該部分運(yùn)算還不能進(jìn)行),
如果運(yùn)算符優(yōu)先級(jí)低于或等于棧頂運(yùn)算符則將棧頂運(yùn)算符彈出并輸出,然后比較新的棧頂運(yùn)算符.
(低于彈出意味著前面部分可以運(yùn)算,先輸出的一定是高優(yōu)先級(jí)運(yùn)算符,等于彈出是因?yàn)橥葍?yōu)先級(jí),從左到右運(yùn)算)
直到運(yùn)算符優(yōu)先級(jí)大于棧頂運(yùn)算符或者???,再將該運(yùn)算符入棧.
6.如果已經(jīng)沒(méi)有數(shù)字和符號(hào),則按順序彈出并輸出棧中所有運(yùn)算符.

標(biāo)簽: