利用棧實(shí)現(xiàn)中綴表達(dá)式求值 中綴轉(zhuǎn)后綴計(jì)算表達(dá)式?
中綴轉(zhuǎn)后綴計(jì)算表達(dá)式?首先,設(shè)置運(yùn)算符的堆棧st,只從左側(cè)掃描中綴表達(dá)式。1如果遇到數(shù)字,請將其直接放在后綴表達(dá)式的末尾。2如果遇到操作員,a:如果工作站是空的,直接放在堆棧上。B:循環(huán):如果堆棧st
中綴轉(zhuǎn)后綴計(jì)算表達(dá)式?
首先,設(shè)置運(yùn)算符的堆棧st,只從左側(cè)掃描中綴表達(dá)式。1如果遇到數(shù)字,請將其直接放在后綴表達(dá)式的末尾。2如果遇到操作員,a:如果工作站是空的,直接放在堆棧上。B:循環(huán):如果堆棧st不為空,且top運(yùn)算符的優(yōu)先級大于或等于當(dāng)前運(yùn)算符,則將top運(yùn)算符從堆棧中放出來,放在后綴表達(dá)式的末尾;c:如果堆棧st不為空,且top運(yùn)算符的優(yōu)先級低于當(dāng)前運(yùn)算符,則直接放運(yùn)算符在堆棧上;重復(fù)1和2,直到掃描整個中綴表達(dá)式;如果此時(shí)堆棧st不是空的,則堆棧頂部的運(yùn)算符將逐個從堆棧中取出并放置在后綴表達(dá)式的末尾。
真值表轉(zhuǎn)換邏輯表達(dá)式?
更簡單的方法是枚舉輸入變量的組合值,因此計(jì)算復(fù)雜度為2^n,其中n表示變量數(shù)。當(dāng)然,因?yàn)檫壿嫳磉_(dá)式相對簡單,所以最后只有*non和方括號,這比四個運(yùn)算簡單得多。一個建議是使用修改后的鏈表或堆棧實(shí)現(xiàn)。畢竟,輸出真值表應(yīng)該枚舉每個變量的真值。
建議的方法如下:使用鏈表或數(shù)組存儲表達(dá)式,并且可以自定義節(jié)點(diǎn)類型:包括外部引用或連接以表示變量的當(dāng)前值。然后,利用堆棧進(jìn)行堆棧壓縮計(jì)算,將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式。根據(jù)枚舉組合遍歷鏈表一次。
請參閱:數(shù)據(jù)結(jié)構(gòu)-堆棧-四計(jì)算(中綴表達(dá)式、后綴表達(dá)式)、鏈表和組合生成算法