2 回答

TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超2個(gè)贊
根據(jù)算術(shù)四則運(yùn)算的規(guī)則:
?????????a. ?從左算到右
?????????b. 先乘除,后加減
?????????c. 先括號(hào)內(nèi),后括號(hào)外
得到算符優(yōu)先表,作為計(jì)算表達(dá)式計(jì)算順序的依據(jù)。
如:q1為先來的算符,q2為后來的算符。如3+5+7,前面的+為q1,后面的+為q2,q1>q2。
算法思想
1.?設(shè)定兩棧:運(yùn)算符棧,操作數(shù)棧;
2.??棧初始化:設(shè)操作數(shù)棧為空;運(yùn)算符棧的棧底元素為表達(dá)式起始符‘#’;
3.??依次讀入字符:是操作數(shù)則入操作數(shù)棧,是運(yùn)算符則要判斷其與運(yùn)算符棧棧頂元素的優(yōu)先級(jí):
?????if 棧頂算符?>?運(yùn)算符:則運(yùn)算符棧出一算符,操作數(shù)棧出兩操作數(shù),計(jì)算,結(jié)果壓入操作數(shù)棧;?
??????????運(yùn)算符?= 棧頂算符:運(yùn)算符棧出一算符與讀取到的算符抵消;
??????????棧頂算符?<?運(yùn)算符:壓入算符棧。
4.??重復(fù)執(zhí)行第3小點(diǎn),直到讀取到‘#’號(hào),與算符棧頂?shù)摹?’相抵消,最后算符棧為空,操作數(shù)棧只有一數(shù)值,即為結(jié)果。
????編程的東西自己去練練手,實(shí)現(xiàn)的流程都在上面了
添加回答
舉報(bào)