輸入中綴表示式空格分隔 例如 2 3
展示如下:
順序從右向左,無優先順序順序,圖中順序 4*5=20, 20 4=24,結果為24
考慮優先順序的運算表示式求值
以上為不考慮優先順序的表示式求值方法,那麼接下來考慮優先順序時,將考慮:
換成程式設計思路:
執行表示式運算時,總是將結果壓入numstack棧
1. 遇到 「 」、「-」 操作符時,優先順序最低,先計算棧內已存資料的加減乘除操作
2. 遇到 「*」 、「/」 操作符時,計算棧內已存資料的乘除操作
3. 遇到 「(」 直接入operatorstack
4. 遇到 「)」 運算棧內的資料,直到找到 「(」
**如下:
function operatorfun(numstack, operatorstack)
}
function fun() {
var str = document.getelementbyid("input").value;
strline = str.split(" ");
for(var i = 0; i
例如:計算 3 * 3 - ( 12 3 * 2 ) / 3
歡迎補充。
表示式求值 棧的利用
棧的功能 棧的順序儲存 include include define maxsize 100 typedef char elemtype typedef struct sqstack sqstack void init s sqstack s 檢測完畢 void out s sqstack s pr...
8569 利用棧實現表示式求值
include using namespace std typedef struct nnode nsnode,nslink typedef struct cnode csnode,cslink typedef struct nstacklink nstack typedef struct csta...
表示式求值(棧)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 acm隊的mdd想做乙個計算器,但是,他要做的不僅僅是一計算乙個a b的計算器,他想實現隨便輸入乙個表示式都能求出它的值的計算器,現在請你幫助他來實現這個計算器吧。比如輸入 1 2 4 程式就輸出1.50 結果保留兩位小數 輸入...