C 詳解 中綴表示式轉化為字尾表示式

2021-10-09 23:41:03 字數 1567 閱讀 3676

中綴表示式轉化為字尾表示式演算法思想細節

首先明確什麼是中綴表示式,什麼是字尾表示式。

中綴表示式是乙個通用的算術或邏輯公式表示方法, 操作符是以中綴形式處於運算元的中間(eg:3+4)。

附:中綴表示式不易被計算機處理。

字尾表示式,又稱逆波蘭式,指的是不包含括號,運算子放在兩個運算物件的後面,所有的計算按運算子出現的順序,嚴格從左向右進行(不再考慮運算子的優先規則)。

轉化思想:

首先明確中綴轉化為字尾過程中,需要轉化的部分。

轉化內容分為兩個部分運算數和運算符號。

運算數:可以分為正數和負數。也可以分為整數和小數。

運算符號:分為六種,包括加減乘除和左右括號。

特別注意:關於數字的處理要注意正負號以及加減的判別。

括號分為左括號和右括號。左括號直接進棧但不輸出,右括號直接開始出棧,直到遇到左括號為止。

乘除運算在運算轉化裡處於高階運算的行列。在運算轉化過程中,遇到乘除運算直接進棧。

加減還是正負,this is a question!

正負的條件:字串的首字母為正負號。即str[0] = ±;或者正負號的前乙個元素為(。eg:(+9),(-9)。處理後應為:9,-9。

加減的條件:不為正負即為加減。

數字或小數點直接輸出,不影響棧內元素。

**如下:

pta提交屢次出錯的原因分析:感悟:

中綴表示式轉化為字尾表示式

注意 中綴表示式需要空格隔開運算元或者操作符 關鍵有 判斷是否操作符,操作符優先順序 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...