那麼字尾表示法如何寫出來的呢?
先看乙個簡單的例子
乙個中綴四則表示式:
9+(3-1)x3+10/2
變成字尾表示式:
9 3 1 - 3 x + 10 2 / +
那麼它是怎麼變的呢?
先別急,我們先來看看計算機是如何計算字尾表示式的。
規則:從左到右遍歷表示式的每個數字和符號,遇到數字就進棧,遇到符號就將棧頂的兩個數字出棧,一直獲得最終的結果。
(從左1列到右看)13
2322
61059
99915
1515
20我們從左向右看:
字尾表示式前三個931都是數字!那麼!進棧!!
然後他們遇到了減號!最上面兩個出列!3-1=2!你給我回去!
就變成了第二列的92了。以此類推,直到最後。
在我們了解計算機如何去求字尾表示式之後。我們就能猜出如何去從乙個中綴表示式去寫乙個字尾表示式
規則:從左往右遍歷
遇到數字,寫它!
遇到符號,收入棧(含括號)
比較符號的優先順序!然後拿出來,寫它!
如此迴圈!
成了!9+(3-1)x3+10/2
還是這個例子
我們可以這樣思考
931931-
931-3
931-3*
931-3*+
931-3*+10 2
931-3*+10 2/
9 3 1 - 3 * + 10 2 / +
中綴 字尾表示式 四則運算
中綴表示式轉化為字尾表示式,並通過字尾表示式計算值 轉化規則 出棧 出棧後元素新增到字尾表示式的末尾 中綴表示式掃瞄完畢後,若棧內元素不為空,依次出棧直到棧為空,出棧元素新增到字尾表示式後 舉例 3 2 5 4 2 過程如下 建立操作符棧,以及儲存字尾表示式的佇列 從頭到尾掃瞄中綴表示式,首先掃瞄到...
四則運算表示式分解,前中字尾表示式(棧的應用)
前 中 字尾表示式的轉換 首先需要明白三者之間的轉換 自然表示式轉換為前 中 字尾表示式,其實是很簡單的。首先將自然表示式按照優先順序順序,構造出與表示式相對應的二叉樹,然後對二叉樹進行前 中 字尾遍歷,即得到前 中 字尾表示式。舉例說明將自然表示式轉換成二叉樹 a b c d 根據表示式的優先順序...
四則運算表示式分解,前中字尾表示式(棧的應用)
前 中 字尾表示式的轉換 首先需要明白三者之間的轉換 自然表示式轉換為前 中 字尾表示式,其實是很簡單的。首先將自然表示式按照優先順序順序,構造出與表示式相對應的二叉樹,然後對二叉樹進行前 中 字尾遍歷,即得到前 中 字尾表示式。舉例說明將自然表示式轉換成二叉樹 a b c d 根據表示式的優先順序...