帶括號的四則運算
public class caculatordemo
/** * 帶括號的四則運算
* @param exp
* @return
*/public static double calckuohao(string exp)else
}/**
* 不帶括號的四則運算
* @param exp
* @return
*/public static double calc(string exp)else
//將運算結果,放回數字集合的i的位置
nums.add(i, d1);
//為了避免i+1位置的乘除號被跳過。因為取出乙個符號之後,後面的符號就會往前移動。
i --;}}
//for迴圈結束後,表示乘除法做完了,只剩下加減法,opts裡面只有+-號
//後加減,一直到所有運算子都被移除
while(!opts.isempty())else
//將運算結果放回到數字集合的0的位置
nums.add(0, d1);
}//運算結束後,數字集合0的位置的值就是運算結果。
result = nums.get(0);
//後加減
return result;
}/**
* 提取運算子集合
* @param exp
* @return
*/private static listgetopts(string exp)
return opts;
}/**
* 提取數字集合
* @param exp
* @return
*/private static listgetnums(string exp)
//string要轉換成double型別
double d = double.parsedouble(str);
nums.add(d);
}return nums;
}/**
* 將負號轉換成@符號
* @param exp
* @return
*/private static string fu2at(string exp) else }}
}return exp;
}/*上述是基本小括號的運算,
下面2個方法是對中括號,大括號的增加*/
private static double dkuohao(string exp) ',indexstart);
string temp = exp.substring(indexstart+1,indexend);
double d = zkuohao(temp);
exp = exp.substring(0,indexstart)+d+exp.substring(indexend+1);
return dkuohao(exp);
}else
}private static double zkuohao(string exp) else
}
C C 帶括號四則運算
1 首先從string讀入表示式,取出每乙個字元後裝入deque容器coll1中 原始碼在後面 2 從該容器取出每乙個元素,利用棧將中綴表示式轉換成字尾表示式 可參考 將字尾表示式裝入容器coll3中。3 最後從coll3中取出元素逐一處理,既使用逆波蘭式求值 如下圖 c 原始碼 可編譯並正常執行,...
含括號的四則運算
總體思路 需要用到棧,從中綴表示式到字尾表示式,再把字尾表示式轉化為結果,比如計算9 3 1 5 4 2,這個式子就叫做中綴表示式,然後我們需要把它轉化成字尾表答式,方法 將中綴表示式從左到右讀取,如果是數字,直接輸出到字尾表示式,如果是字元,則如果是右括號,把從棧頂開始到棧中左括號的字元輸出到字尾...
C 實現四則運算器 帶括號
基本分析可以看另一篇文章c 實現四則運算器 無括號 棧的實現 ifndef stack h define stack h includeclass stack int stack int unsigned int capacity bottom new int capacity 1 top bott...