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

2021-08-09 13:49:42 字數 1073 閱讀 8978

注意:中綴表示式需要空格隔開運算元或者操作符

關鍵有:判斷是否操作符,操作符優先順序

public

class

profixexpression

/** * 計算排好的字尾操作計算式

*@param prostr

*@return

*/public

static

intprofixcalculate(string prostr)else

}return st.pop();

}/** * 對合適的操作進行算術運算

*@param x 後出棧運算元

*@param y 先出棧運算元

*@param operator

*@return

*/private

static integer operate(int x, int y, string operator)

}/** * 判斷字串是否是操作符

*@param op 操作符

*@return

*/private

static

boolean

isoperator(string op)

return

false;

}/**

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

*@param mid

*@return

*/public

static string midtopro(string mid)elseelse

st.pop();

}else

st.push(arr[i]);

system.out.println("遇上操作符後"+st.getsize());}}

}}

while(!st.isempty())

return outstr;

}public

static

intgetprio(string op)

return

0; }

}

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

中綴表示式轉化為字尾表示式有兩種方法,一種是利用棧,一種是把表示式轉化為樹再進一步求解,今天我們來深入了解一下這兩種方法 給出下面乙個例子 我們把中綴表示式 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...

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

具體操作如下 1 遇到數字,直接將其輸出。2 遇到運算子,且棧頂元素優先順序低於當前運算子優先順序,則我們將其放入到棧中,遇到左括號時我們也將其放入棧中。3 遇到運算子,且棧頂元素優先順序高於或等於當前運算子優先順序,則彈出棧中元素,直至棧空或棧頂元素優先順序低於當前運算子優先順序。再將遇到的運算子...