帶括號的四則運算

2021-07-28 02:20:25 字數 1572 閱讀 2008

帶括號的四則運算

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...