同樣為棧的應用程式之一,關於字尾表示式的概念我們不在贅述,直接來實現。
enum operator //這個列舉型別是為了更好的儲存資料建立的
;class cell
operator _op;
int data;
};int calcrpn(cell* rpn, int size)
else //其他情況的話就代表這個資料是乙個運算子,我們就進行相應的操作
s.push(left / right);
break;
default:assert(0);
break;
}} }
return s.top(); //最後我們將棧頂元素返回,即為所求結果
}
這個實現是極為簡單的,不考慮括號等優先順序的問題,只進行最簡單的運算,接下來我們來試驗下它是否正確
int main()//12*(3+4)-6+8/2 //我們給出的式子所得結果應該為82
這就是乙個簡易字尾表示式的實現。
字尾表示式實現表示式求值
看到別人寫的乙個表示式求值程式,想到很久之前寫的乙個。中間有個字串轉數值型,可以用stringstream來實現或者c語言裡面的strtod直接得到 include include include include includeusing namespace std class data doubl...
字尾表示式 中綴到字尾表示式
輸入空格跳出迴圈 while k getchar n 字尾表示式 此 僅限於0 9內的加減乘除 include include include define long 10 using namespace std typedef struct stack qstack void init qstac...
字尾表示式
字尾表示式的計算和中綴表示式轉字尾表示式 此處的運算用的是鍊錶的表示方法 以下為三個會涉及到的標頭檔案 error.h 字尾表示式 created by kyle.yang on 14 12 2.ifndef error h define error h include using namespac...