演算法中的算術表示式

2021-12-30 08:07:53 字數 321 閱讀 6862

(1+ ( (2+3) * (4 * 5)))

我們如何通過演算法來計算上面的表示式呢?

方法:用2個棧(乙個用於儲存運算子,乙個用於儲存運算元),其中的運算子包括:+,-,*,/,(,),

表示式有括號、運算子、和運算元(數字)組成。我們根據以下4種情況從左到右逐個將這些實體送入棧處理

將運算元壓入運算元棧

將運算子壓入運算子棧

忽略左括號

在遇到右括號時,彈出乙個運算子,彈出所需數量的運算元,並將運算子和運算元的運算結果壓入運算元棧

最後:在處理完最後乙個右括號的時候,運算元棧中只會又乙個值,他就是表示式的值

算術表示式

引用標頭檔案 include include include using namespace std typedef int elemtype const int stack init size 100 儲存空間的初始化分配量 const int stackincrement 10 儲存空間分配增量...

算術表示式

include include include include define maxzhansize 30 char stack maxzhansize char deleted int top void add int top,char item 逆波蘭數計算 define element int...

演算法學習 算術表示式

題目描述 implement a basic calculator to evaluate a expression string.the expression string may contain open and closing parentheses the plus or minus sig...