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

2021-10-03 10:14:15 字數 1391 閱讀 7834

中綴表示式就是平常的表示式,如(3+4)*5-6=29字首表示式又稱為波蘭式,也就是運算子位於數字前面,如 -*+3456字尾表示式又稱為逆波蘭式,也就是運算子位於數字後面,如 3 4 + 5 × 6 -

字尾表示式轉為中綴表示式要點:遇到運算元都進棧,等到碰到運算子就把棧頂兩個元素出棧,運算後再入棧,直到結束。

1. a入棧,b入棧,`棧為 a b`

2. 遇到運算子+,b出棧,a出棧,運算為(a+b),再入棧,棧為`(a+b)`

3. c入棧,d入棧,棧為`(a+b) c d`

4. 遇到運算子+,d出棧,c出棧,運算為(c+d),入棧,結果為`(a+b) (c+d)`

5.遇到運算子*,棧頂兩個元素出棧,運算結果為(a+b)*(c+d)

1. 如果是運算元(數字、字母),則進入結果棧

2. 如果是左括號,那麼入運算棧;

3. 如果是右括號,那麼把運算棧的棧頂元素出棧,入棧到結果棧,知道遇到左括號,遇到左括號後,這一對括號都消滅

4.1 如果是運算子,如果運算棧為空,那麼入棧

4.2 如果是運算子,此時運算棧頂運算子不為左括號!!!,且棧裡不存在優先順序大於或等於該運算子的運算子,則該運算子入棧,

否則大於等於該運算子的其他運算子先出棧再入棧到結果棧

4.3 如果是運算子,此時棧頂運算子是左括號,那麼入棧

f是運算元,進結果棧結果棧為 a f+是運算子,但是棧中存在優先順序大於等於的*,所以 * 先出棧,然後 * 入運算棧結果棧為 a f *(是左括號,入運算棧,運算棧為 + (b是運算元,入結果棧,結果棧 a f * b-是運算子,棧頂元素是左括號,所以-入運算棧運算棧 + ( -c是運算元,入結果棧,結果棧 a f * b c/是運算子,運算棧頂元素不是左括號,運算棧 + ( -不存在優先順序大於等於 / 的元素,所以 / 入運算棧

d是運算元,d入結果棧,結果棧 a f * b c d)是右括號,所以運算棧的棧頂元素出棧,知道左括號,入棧後進到結果棧

此時運算棧是+ ( - /,所以結果棧變為a f * b c d / -,運算棧變為+,左右括號消滅了

然後*是運算子,運算棧中不存在大於等於的元素,所以入運算棧,運算棧為+ *e是運算元,e入結果棧,結果棧為a f * b c d / - e,

掃瞄結束,所以運算棧全部出棧到結果棧,為a f * b c d / - * +

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

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

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

正如我們常常潛意識認為我們所說的數字都是十進位制,對於數字的其他進製感覺不正確一樣,其實只是我們不熟悉而已,其他進製其實也不過就是一種對資料的表達方式而已。對於我們的表示式也是一樣。eg 表示式2 3 5 7 我們上面所看到的也就是我們平時常用的書寫表示式的方式就是我們所謂的 中綴表示式 字首表示式...

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

表示式 就是式子。是由數字 算符 數字分組符號 自由量和約束量組成的。人們一般習慣寫出來的式子,叫做中綴表示式。因為在計算機中,不方便表達 數字分組符號。所以 波蘭人發明了一種把去符號化的表示式。字首表示式 字首表示式 沒有括號,算符在前 數字在後。波蘭數學家發明,為了紀念,又叫做波蘭式。跟其對應,...