表示式 棧的實現 資料結構

2021-06-27 13:51:38 字數 602 閱讀 5612

這段**對一些讀入的非法資料判斷存在錯誤

比如像出現 a++b 就無法判斷了

另外需要注意的是我覺得棧裡面儲存的是char型的,但是在運算元值的時候,會很不方便

還有一點在主函式裡面如果想用while來多次讀入資料的話,那麼你要考慮上一次輸入資料失敗後,那後面的字元該怎麼操作

上面出現的問題大家可以嘗試著去解決

以下是根據書上的**簡單敲出來的

bool in(char c)

char precede(char t1,char t2)

} if(t2 == '*'||t2 == '/')

if(t2 == '(')

if(t1 ==')')

else

f = '<';

if(t2 == ')') }

if(t2 == '#')

if(t1 == '#') f = '=';

} return f;

}char operate(char a,char c,char b)

//提前結束

if(!in(ch))

else

}} if(flag == 1)

cout<

資料結構 棧實現表示式求值

expression.h calc expression 功能 利用棧實現整數表示式求值 輸入 表示式字串 輸出 求值結果 日期 2018 04 05 ifndef expression h define expression h include include include include 將中...

棧實現表示式計算 資料結構

思路 所包含的運算子有 1 建立兩個棧,乙個用來儲存運算元,另乙個用來儲存運算子,開始時在運算子棧中先壓入 0 乙個表示式的結束符。2 然後從左至右依次讀取表示式中的各個符號 運算元或者運算子 3 如果讀到的是運算元直接存入運算元棧 4 如果讀到的是運算子,則作進一步判斷 若讀到的是 0 結束符,而...

資料結構實驗2 表示式求值(「棧」實現)

include include include include define stack init size 100 define increament 100 define zuidaweishu 10 define error 0 using namespace std class yunsua...