求字尾式 逆波蘭式 的步驟

2021-05-18 08:56:41 字數 477 閱讀 6037

原表示式:a*(b*(c+d/e)-f)#    /* # 為表示式結束符號*/

字尾式:abcde/+*f-x#

為運算子定義優先順序:#   (   +   -   *   /   **

-1   0   1   1   2   2   3

從原表示式求字尾式的規則為:

1.設定運算子棧

2.假設表示式的結束符為"#",我們需要預設運算子棧底元素為"#"

3.掃瞄表示式,若當前字元是運算元,則直接傳送給字尾表示式;

4.若當前字元為運算子且優先順序大於棧頂運算子,則進棧,否則退出棧頂運算子並將其傳送給字尾式。然後將當前運算子放入棧中。

5.若當前字元是結束符,則將棧中的全部運算子依次傳送給字尾式。

6.若當前字元為"(",進棧。

7.若當前字元為")",則從棧頂起,依次將棧中運算子出棧傳送給ie字尾式,直到碰到"("。將棧中"("出棧,不需要傳送給字尾式。然後繼續掃瞄表示式。

字尾式 逆波蘭式

逆波蘭式 是波蘭邏輯學家盧卡西維奇 lukasiewicz 發明的一種表示 表示式的方法。這種表示方式把運算子寫在運算物件的後面,例如,把a b寫成ab 所以也稱為字尾式。這種表示法的優點是根據運算物件和算符的出現次序進行計算,不需要使用括號,也便於用械實現求值。對於 表示式x a b c d 其字...

波蘭式和逆波蘭式

字首 中綴 字尾表示式是對表示式的不同記法,其區別在於運算子相對於運算元的位置不同,字首表示式的運算子位於運算元之前.中綴和字尾同理 雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。對計...

中綴式轉換為字尾式(逆波蘭式)方法

對於用低階程式語言是實現對表示式的處理,字尾式 逆波蘭式 最為簡便。下面是將中綴式 常見表示式 轉換為字尾式的演算法 棧底放 從左至右逐字讀取中綴式 a.當當前字元為數字時,直接輸出 b.當當前字元為 時,將其壓棧 c.當當前字元為 時,則彈出堆疊中最上的 之前的所有運算子並輸出,然後刪除堆疊中的 ...