題組內容
三、運算式(Expression)有三種表示方式:中序式(Infix)、前序式(Prefix)、後序式
(Postfix)。
⑶在堆疊(Stack)的操作中,會使用後序式的觀念,請說明其原理。(10 分)
詳解 (共 1 筆)
詳解
運算時由 後序式的前方開始讀取,遇到運算元先存入堆疊,如果遇到運算子,則由堆疊中取出兩個運算元進行對應的運算,然後將結果存回堆疊,如果運算式讀取完 畢,那麼堆疊頂的值就是答案了,例如我們計算12+34+*這個運算式(也就是(1+2)*(3+4)):
| 讀取 | 堆疊 |
| 1 | 1 |
| 2 | 1 2 |
| + | 3 // 1+2 後存回 |
| 3 | 3 3 |
| 4 | 3 3 4 |
| + | 3 7 // 3+4 後存回 |
| * | 21 // 3 * 7 後存回 |