專題 前 中 字尾表示式的計算

2021-10-09 10:11:17 字數 1400 閱讀 8599

不同表示式的計算

首先還是需要知道一下關於中綴轉前字尾的方法

具體參考轉換方法

以 (5+2+1✖3)/5 為例

字尾:52+13*+5/

字首:/++52*135

其中,中綴和字尾表示式的計算是重點,字首和字尾計算類似,具體參見**

#include

#include

double

cal_suffix

(char

*str)

;double

cal_preffix

(char

*str)

;double

cal_fix

(char str)

;int

main()

double

cal(

double a,

double b,

char c)

}int

operate

(char c)

}

double

cal_preffix

(char

*str)

else

}return result;

}

double

cal_fix

(char str)

else

stack2[

++top2]

=str[i]

;//運算結束,字元入棧2}}

else

if(str[i]

=='*'

||str[i]

=='/'

)else

stack2[

++top2]

=str[i];}

}else

if(str[i]

=='('

)else

if(str[i]

==')'

) stack2[top2--];

//彈出左括號

}else

//不是操作符直接入棧1

stack1[

++top1]

=str[i]

-'0'

; i++;}

while

(top2!=-1

)return stack1[top1]

;//返回結果

}

double

cal_suffix

(char

*str)

else

i++;}

return result;

}

前,中,字尾表示式

字首表示式,中綴表示式,字尾表示式都是四則運算的表達方式,用以四則運算表示式求值,即數學表示式的求值。比如乙個簡單的數學表示式 1 2 3 4 這是我們常見的數學表示式型別 即中綴表示式 為什麼要將簡單的中綴表示式轉化為複雜的波蘭式或逆波蘭式 原因在於,簡單的中綴表示式在用人的思維邏輯來看,確實簡單...

前 中 字尾表示式

1 字首表示式又稱波蘭式,字首表示式的運算子位於運算元之前 2 舉例說明 3 4 5 6 對應的字首表示式就是 3 4 5 6 從右至左掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算 棧頂元素 和 次頂元素 並將結果入棧 重複上述過程直到表示式最左...

前 中 字尾表示式的轉換

前 中 字尾表示式的轉換 自然表示式轉換為前 中 字尾表示式,其實是很簡單的。首先將自然表示式按照優先順序順序,構造出與表示式相對應的二叉樹,然後對二叉樹進行前 中 字尾遍歷,即得到前 中 字尾表示式。舉例說明將自然表示式轉換成二叉樹 a b c d 根據表示式的優先順序順序,首先計算 b c 形成...