中綴表示式 字尾表示式

2021-09-26 13:37:51 字數 2165 閱讀 9580

數學表示式稱為中綴表示式,符合人的思考習慣

1 + 2 * 3
運算子放在數字後面,符合計算機運算

123*+
遍歷中綴表示式中的數字和符號:

左括號:入棧

運算符號:需要與棧頂符號進行優先順序比較:

遍歷結束:將棧中所有符號彈出並輸出。

例:

中綴表示式:1 + 2 * (5 - 3) - 4 / 2 + 1

1、數字1直接輸出;

結果:1 棧:空

2、+,由於棧中沒有符號,直接入棧;

結果:1 棧:+

3、數字2直接輸出;

結果:12 棧:+

4、*,由於棧頂符號+優先順序低於*,入棧;

結果:12 棧:+*

5、(,直接入棧;

結果:12 棧:+*(

6、數字5直接輸出;

結果:125 棧:+*(

7、-,由於棧頂符號(優先順序低於-,入棧;

結果:125 棧:+*(-

8、數字3直接輸;

結果:1253 棧:+*(-

9、),棧頂符號為-,彈出並輸出;棧頂符號為(,彈出;

結果:1253- 棧:+*

10、-,棧頂符號*優先順序高於-,彈出並輸出;棧頂符號+優先順序不低於-,彈出並輸出;棧為空,-入棧;

結果:1253-*+ 棧:-

11、數字4直接輸出;

結果:1253-*+4 棧:-

12、/,棧頂符號-優先順序低於/,入棧;

結果:1253-*+4 棧:-/

13、數字2直接輸出;

結果:1253-*+42 棧:-/

14、+,棧頂符號/優先順序高於+,彈出並輸出;棧頂符號-優先順序不低於+,彈出並輸出;棧為空,+入棧;

結果:1253-*+42/- 棧:+

15、數字1直接輸出

結果:1253-*+42/-1 棧:+

16、遍歷結束

結果:1253-*+42/-1 棧:+

17、輸出棧中的符號+;

18、此時已轉為字尾表示式:1253-*+42/-1+

遍歷字尾表示式中的符號以及數字:

從棧中彈出右運算元;

在彈出左運算元;

根據符號進行運算;

將結果入棧;

遍歷結束:棧中剩餘的唯一數字為計算結果

例:

字尾表示式:1253-*+42/-1+

1、數字1入棧;

棧:12、數字2入棧;

棧:12

3、數字5入棧;

棧:125

4、數字3入棧;

棧:1253

5、-,從棧中取出右運算元3,再取出左運算元5,5-3=2,2入棧

棧:122

6、*,從棧中取出右運算元2,再取出左運算元2,2*2=4,4入棧

棧:14

7、+,從棧中取出右運算元4,再取出左運算元1,1+4=5,5入棧

棧:58、數字4入棧

棧:54

9、數字2入棧

棧:542

10、/,從棧中取出右運算元2,再取出左運算元4,4/2=2,2入棧

棧:52

11、-,從棧中取出右運算元2,再取出左運算元5,5-2=3,3入棧

棧:312、數字1入棧

棧:31

13、+,從棧中取出右運算元1,再取出左運算元3,3+1=4,4入棧

棧:414、遍歷結束

15、棧中唯一數字為結果:4

1 + 2 * (5 - 3) - 4 / 2 + 1 = 4

計算正確

中綴表示式 字尾表示式

中綴表示式就是 a b 這樣的,運算子在兩個數的中間 字尾表示式就是 a b 這樣的,運算子在兩個數後面 再細分一下 中綴表示式 字尾表示式 a b c a b c a b c a b c a b c a b c a b c a b c a b c d e a c a b c d e a c emm...

中綴表示式 字尾表示式

表示式 x a b c d e 的字尾表示形式可以為 c a xab cde b xa bc de c xabcd e d xabcde 表示式前字尾表達形式 乙個中綴式到其他式子的轉換方法 這裡我給出乙個中綴表示式 a b c d e 第一步 按照運算子的優先順序對所有的運算單位加括號 式子變成拉...

中綴表示式 字首表示式 字尾表示式

中綴表示式 中綴記法 中綴表示式是一種通用的算術或邏輯公式表示方法,操作符以中綴形式處於運算元的中間。中綴表示式是人們常用的算術表示方法。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。...