中綴表示式可以被劃分為part1、oper、part2
將這三部分按part1、part2、oper的順序組成新的序列即為字尾表示式
同理也可得字首表示式
下為part1的分類:
測試資料
1+(2-3/4)*5輸出結果
1234/-5*+
#include
#include
using namespace std;
bool is_oper_or_num
(string s)
string rpn
(string s)
//第一部分為整個字串,即表示式被括號包圍,
//則刪除兩側的括號,重新計算中間的表示式的值
if(part1==s)
//表示式可以被分為兩部分(第一部分有括號),以及兩部分中間的運算子
else
}//表示式可以被分為兩部分(第一部分為單個數字),以及兩部分中間的運算子
else
}int
main()
中綴表示式轉化為字尾表示式
注意 中綴表示式需要空格隔開運算元或者操作符 關鍵有 判斷是否操作符,操作符優先順序 public class profixexpression 計算排好的字尾操作計算式 param prostr return public static intprofixcalculate string pros...
中綴表示式轉化為字尾表示式
中綴表示式轉化為字尾表示式有兩種方法,一種是利用棧,一種是把表示式轉化為樹再進一步求解,今天我們來深入了解一下這兩種方法 給出下面乙個例子 我們把中綴表示式 9 3 1 3 10 2 轉化為字尾表示式 1.首先初始化乙個空棧,用來對符號進出棧使用 2.第乙個字元是數字9,輸出9,將後面的符號 進棧 ...
中綴表示式轉化為字尾表示式
中綴表示式轉化為字尾表示式 例如 1 2 3 4 7 5 123 4 75 1 遇到數字輸出,否則進棧。2 遇到有右括號匹配棧裡的左括號,輸出棧裡的內容 3 遇到比自己比棧裡的運算子優先順序高,入棧 4 遇到比自己比棧裡的運算子優先順序低,將棧裡的運算子出棧 include include incl...