卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

逆波蘭表達(dá)式怎么計(jì)算 一般算術(shù)表達(dá)式轉(zhuǎn)化為逆波蘭式?

一般算術(shù)表達(dá)式轉(zhuǎn)化為逆波蘭式?表達(dá)式e后綴形式的定義:(1)如果e是變量或常量,則e的后綴形式為e本身;(2)如果e是E1*E2的形式(其中*表示任何二進(jìn)制運(yùn)算),則e的后綴形式為e“1 e”2*,e

一般算術(shù)表達(dá)式轉(zhuǎn)化為逆波蘭式?

表達(dá)式e后綴形式的定義:(1)如果e是變量或常量,則e的后綴形式為e本身;(2)如果e是E1*E2的形式(其中*表示任何二進(jìn)制運(yùn)算),則e的后綴形式為e“1 e”2*,e“1和e”2分別為E1和E2的后綴表達(dá)式;(3) 如果e是(E1)形式的表達(dá)式,那么e的后綴表達(dá)式就是E1的后綴表達(dá)式。因此,波蘭語表達(dá)式的反轉(zhuǎn)與算子的優(yōu)先級無關(guān)。具體算法比較困難,要使用DAG圖或三元圖,這是編譯原理中使用較多的。根據(jù)逆波蘭表達(dá)式計(jì)算相對簡單。堆棧用于依次將字符串讀入堆棧。遇到運(yùn)算符時(shí),將堆棧頂部的兩個(gè)元素取出進(jìn)行操作,并將操作結(jié)果推入堆棧,直到讀取整個(gè)字符。

假設(shè)表達(dá)式由單字母變量和雙目四則運(yùn)算符構(gòu)成。寫一個(gè)算法,把一個(gè)表達(dá)式轉(zhuǎn)換為逆波蘭式?

算法如下:char*rpexpression(char*e)/*返回表達(dá)式e*/{char M=“0”char*B stack s static char a[100]B=a initstack(s)push(s,M)if(*e){while(*e){switch(*e){case”(“:{push(s),*e)break}case“:case”-“:{M=top(s)if(M=”| M=“-”){pop(s,M)*b=M}else if(M==”*“| M==”/”){pop(s,M)while(M!=“(”&&;amp;amp;amp;amp;amp!“0 ”0{0 {0 {0 {0{0{0 {0{”0{0{0{0}{0}{b=m Pop(s、m)b=m Pop(s、m)b=m Pop(s、m)}[u)如果(m)假如(m)假如(m===“0”推(s、m)推(s、s、e)斷裂)推動}打破}本}個(gè)案}案例{案例}案例{案例}案例“::個(gè)案::::::::“:::個(gè)案{個(gè)案{個(gè)案=m if(m==“(”| | m==“0”)Push(s,m)Push(s,*e)}break}case”“:{Pop(s,m)while(m!=“(”{*b=m Pop(s,m)}break}默認(rèn):{*b=*e break}e}Pop(s,m)while(m!=“0”{*b=m Pop(s,m)}*b=“0”b=a return b}}