中綴表示式轉化為字首 字尾表示式的遞迴演算法

2021-10-04 08:42:22 字數 692 閱讀 5533

中綴表示式可以被劃分為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...