2.如果堆棧為空,則直接輸入運(yùn)算符。
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)亭湖,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-869222203.遇到左括號(hào)時(shí),將其放在堆棧上。
4.當(dāng)遇到右括號(hào)時(shí),將執(zhí)行stackout操作,并輸出stackout元素。直到彈出堆棧的元素是左括號(hào)。
5.遇到其他運(yùn)算符時(shí),彈出堆棧中優(yōu)先級(jí)大于或等于運(yùn)算符的所有頂層元素,然后將運(yùn)算符放在堆棧上。最后,堆棧中的元素依次從堆棧中取出。
如何在程序中將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式?將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式ab*C-(DE)的方法根據(jù)運(yùn)算符的優(yōu)先級(jí)為所有運(yùn)算單元添加括號(hào)。((a(b*c))-(D,e))變換中綴和后綴表達(dá)式后綴:將運(yùn)算符號(hào)移到相應(yīng)的括號(hào)中。((a(BC)*(DE))-去掉括號(hào),記住后綴表達(dá)式ABC*DE-可以發(fā)現(xiàn)后綴表達(dá)式不需要括號(hào)來(lái)調(diào)整操作優(yōu)先級(jí)。
中綴表達(dá)式如何轉(zhuǎn)換為前后綴表達(dá)式?中綴表達(dá)式是一種正常的書(shū)寫(xiě)方式,如公式a、b*C后綴表達(dá)式,也稱為逆波蘭表達(dá)式。中綴的表達(dá)式是ABC*轉(zhuǎn)換法,公式字符串是逐位判斷的。當(dāng)公式中的變量被直接輸出時(shí),運(yùn)行時(shí)被放在堆棧上。當(dāng)進(jìn)入堆棧時(shí),比較頂部堆棧操作符和內(nèi)部堆棧操作符的高度,然后進(jìn)出堆棧。例如:公式:A,b*C
1,輸出A
2,放入棧(棧為空)
3,輸出b
4,*放入棧(*與棧頂元素相比,如果棧頂元素優(yōu)先級(jí)較高,則先輸出棧頂元素,否則放入當(dāng)前操作符)
5,輸出C
6,放入棧外*
7,出棧
首先,設(shè)置一個(gè)操作符的棧st,只從左邊掃描中綴表達(dá)式。1如果遇到數(shù)字,請(qǐng)將其直接放在后綴表達(dá)式的末尾。2如果遇到運(yùn)算符A:如果站為空,則直接將其放在堆棧上;b:循環(huán):如果堆棧st不為空,并且堆棧頂部運(yùn)算符的優(yōu)先級(jí)大于或等于當(dāng)前運(yùn)算符,則堆棧頂部運(yùn)算符將從堆棧中取出并放在后綴表達(dá)式的末尾;c:如果堆棧st不為空,且頂層運(yùn)算符的優(yōu)先級(jí)低于當(dāng)前運(yùn)算符,則直接將運(yùn)算符放在堆棧上;重復(fù)1和2,直到掃描整個(gè)中綴表達(dá)式;如果堆棧st此時(shí)不為空,位于堆棧頂部的運(yùn)算符將逐個(gè)從堆棧中取出,并逐個(gè)放置在后綴表達(dá)式的末尾。
后綴表達(dá)式轉(zhuǎn)中綴表達(dá)式?#包括使用命名空間STDbool等運(yùn)算符(charCH){charOPS[]=“-*/”for(inti=0,i)]中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式和求值算法:中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式方法:
1。遇到的操作數(shù):直接輸出(添加到后綴表達(dá)式)
2。當(dāng)堆棧為空時(shí),遇到運(yùn)算符,直接進(jìn)入堆棧
3。遇到左括號(hào):放在堆棧上
4。遇到右括號(hào):執(zhí)行stackout操作,將元素從堆棧中輸出,直到