中綴算式怎么轉(zhuǎn)化為后綴算式 中綴轉(zhuǎn)后綴計(jì)算表達(dá)式?
中綴轉(zhuǎn)后綴計(jì)算表達(dá)式?首先,設(shè)置運(yùn)算符的堆棧st,只從左側(cè)掃描中綴表達(dá)式。1如果遇到數(shù)字,請(qǐng)將其直接放在后綴表達(dá)式的末尾。2如果遇到操作員,a:如果工作站是空的,直接放在堆棧上。B:循環(huán):如果堆棧st
中綴轉(zhuǎn)后綴計(jì)算表達(dá)式?
首先,設(shè)置運(yùn)算符的堆棧st,只從左側(cè)掃描中綴表達(dá)式。1如果遇到數(shù)字,請(qǐng)將其直接放在后綴表達(dá)式的末尾。2如果遇到操作員,a:如果工作站是空的,直接放在堆棧上。B:循環(huán):如果堆棧st不為空,且top運(yùn)算符的優(yōu)先級(jí)大于或等于當(dāng)前運(yùn)算符,則將top運(yùn)算符從堆棧中放出來(lái),放在后綴表達(dá)式的末尾;c:如果堆棧st不為空,且top運(yùn)算符的優(yōu)先級(jí)低于當(dāng)前運(yùn)算符,則直接放運(yùn)算符在堆棧上;重復(fù)1和2,直到掃描整個(gè)中綴表達(dá)式;如果此時(shí)堆棧st不是空的,則堆棧頂部的運(yùn)算符將逐個(gè)從堆棧中取出并放置在后綴表達(dá)式的末尾。
后綴算式9 2 3 - 10 2 / - 的值是多少,求解?
后綴9 23-10 2/-的值為-1。
后綴表達(dá)式的計(jì)算方法是,如果當(dāng)前字符是變量或數(shù)字,將按下堆棧。如果是運(yùn)算符,則會(huì)彈出堆棧頂部的兩個(gè)元素進(jìn)行相應(yīng)的操作,結(jié)果會(huì)再次進(jìn)入堆棧。最后,掃描表達(dá)式時(shí),結(jié)果將在堆棧中。
所以9 23-10 2/-首先把9 23放在堆棧上,遇到符號(hào),取出2 3,相加,把結(jié)果放在堆棧上,堆棧中的結(jié)果是
9 5,再遇到符號(hào),同樣,堆棧中的結(jié)果是4,然后輸入堆棧10 2,堆棧中的結(jié)果是4 10 2。遇到/number時(shí),堆棧中的結(jié)果將更改為4.5。當(dāng)再次遇到-符號(hào)時(shí),堆棧中的結(jié)果將更改為:-1。后綴表達(dá)式結(jié)束,因此最終結(jié)果為-1。
https://iknow-pic.cdn.bcebos.com/8b13632762d0f703e5860a8a07fa513d2697c5b4
擴(kuò)展數(shù)據(jù):
在后綴表達(dá)式中,如果當(dāng)前字符是運(yùn)算符且優(yōu)先級(jí)高于堆棧頂部運(yùn)算符,則它將進(jìn)入堆棧。否則,它將退出top-of-stack操作符并將其發(fā)送到后綴表達(dá)式。然后將當(dāng)前操作符放到堆棧上。
對(duì)于計(jì)算機(jī)來(lái)說(shuō),中間階表達(dá)式是一個(gè)非常復(fù)雜的結(jié)構(gòu)。相比之下,后綴表達(dá)式是一種相對(duì)簡(jiǎn)單易懂的結(jié)構(gòu)。由于棧橋結(jié)構(gòu)一般采用計(jì)算機(jī)存儲(chǔ)結(jié)構(gòu),所以它執(zhí)行先進(jìn)后出的順序。
后綴表達(dá)式的優(yōu)點(diǎn)是可以根據(jù)操作對(duì)象和運(yùn)算符的出現(xiàn)順序進(jìn)行計(jì)算,不需要括號(hào),便于機(jī)器計(jì)算。