表示式求值

2021-06-21 10:11:14 字數 518 閱讀 4418

利用棧實現乙個數學表示式的求值

1:運算元棧置空,操作符棧壓入算符「#」

2:依次讀入表示式的每個單詞

3:如果是運算元,壓入運算元棧

4:如果是操作符,將操作符棧頂元素θ1與讀入的操作符θ2進行優先順序比較

4.1: 如果棧頂元素優先順序低,將θ2壓入操作符棧   4.2: 如果相等,彈操作符棧

4.3: 如果棧頂元素優先順序h,彈出兩個運算元,乙個運算子,進行計算,並將計算結果壓入運算元棧,重複第4步的判斷

5:直至整個表示式處理完畢

#include

#include

int comp(char str1,char str2)

}int compute(char *str)

opnd[++top1]=m;

}else

opnd[++top1]=z;

}else}}

return opnd[top1];

}int main()

}

表示式求值

程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...

表示式求值

既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...

表示式求值

寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...