全文轉載自:前綴、中綴醇王、后綴表達式(逆波蘭表達式)呢燥,侵刪。
前綴表達式寓娩,中綴表達式叛氨,后綴表達式都是四則運算的表達方式,用以四則運算表達式求值棘伴。
中綴表達式
中綴表達式就是我們常見的運算表達式力试。如 (3+4)×5-6
前綴表達式
前綴表達式又稱為波蘭式,前綴表達式的運算符位于操作數之前排嫌。比如- x + 3 4 5 6
前綴表達式的計算求值
從右至左掃描表達式,遇到數字時缰犁,將數字壓入堆棧淳地,遇到運算符時,彈出棧頂的兩個數帅容,用運算符對它們做相應的計算(棧頂元素 op 次頂元素)颇象,并將結果入棧;重復上述過程直到表達式最左端并徘,最后運算得出的值即為表達式的結果
- 例如:- x + 3 4 5 6
從右至左掃描:- 遇到 6遣钳,將6入棧÷笃颍【6】
- 遇到 5蕴茴,將5入棧 劝评。【6倦淀,5】
- 遇到 4蒋畜,將4入棧 ∽策矗【6姻成,5,4】
- 遇到 3愿棋,將3入棧 科展。【6糠雨,5才睹,4,3】
- 遇到 + 運算符见秤,彈出 3 和 4砂竖,計算出3 + 4 = 7,將7入棧鹃答『醭危【6,5测摔,7】
- 遇到 × 運算符置济,彈出 7 和 5,計算出7 × 5 = 35锋八,將35入棧.【6浙于,35】
- 遇到 - 運算符,彈出 35 和 6挟纱,計算出35 - 6 = 29羞酗,得出最終結果29。
將中綴表達式轉為前綴表達式
轉換算符如下:
- 初始化兩個棧:預算符棧S1紊服,存儲中間結果棧S2檀轨,
后綴表達式
后綴表達式又稱逆波蘭表達式,與前綴表達式相似,只是運算符位于操作數之后欺嗤。
后綴表達式計算機求值
與前綴表達式類似参萄,只是從左至右掃描表達式,遇到數字時煎饼,將數字壓入堆棧讹挎,遇到運算符時,彈出棧頂的兩個數,用運算符對它們做相應的計算(次頂元素 op 棧頂元素)筒溃,并將結果入棧马篮;重復上述過程直到表達式最右端,最后運算得出的值即為表達式的結果铡羡。
- 例如:3 4 + 5 × 6 -
從左至右掃描:- 遇到 3积蔚,將3入棧》持埽【3】
- 遇到 4尽爆,將4入棧《辽鳎【3漱贱,4】
- 遇到 + 運算符,彈出 4 和 3夭委,計算出 3 + 4 = 7幅狮,將7入棧≈昃模【7】
- 遇到 5崇摄,將5入棧』派眨【7逐抑,5】
- 遇到 x 運算符,彈出7 和 5屹蚊,計算出 7 * 5 = 35厕氨,將35入棧⌒谠粒【35】
- 遇到 6命斧,將6入棧≈黾妫【35国葬,6】
- 遇到 - 運算符,彈出 35 和 6芹壕,計算出 35 - 6 = 29胃惜,得出最終結果。