地特四等申論題
106年
[資訊處理] 資料處理概要
第 一 題
📖 題組:
三、運算式(Expression)有三種表示方式:中序式(Infix)、前序式(Prefix)、後序式(Postfix)。
三、運算式(Expression)有三種表示方式:中序式(Infix)、前序式(Prefix)、後序式(Postfix)。
📝 此題為申論題,共 3 小題
小題 (一)
請將中序式 A+B*(C+D)+E/F 轉換為前序式及後序式。(10 分)
思路引導 VIP
看到運算式轉換題目,首要任務是確認運算子的優先級(括號最高,乘除次之,加減最低)與結合律(同級由左至右)。推薦使用「完全括號法」,將每個運算步驟明確加上括號,再將運算子移至括號前(前序)或括號後(後序),即可確保轉換絕對正確。
小題 (二)
請將前序式 ++*AB/-CD-EFG 轉換為中序式及後序式。(10 分)
思路引導 VIP
看到前序式轉換,建議優先畫出「二元運算式樹(Expression Tree)」,或是採用「由右至左掃描,遇到運算子即合併相鄰兩個運算元」的堆疊法。這種逐步合併的方式能最直觀且不易出錯地推導出中序與後序式。
小題 (三)
在堆疊(Stack)的操作中,會使用後序式的觀念,請說明其原理。(10 分)
思路引導 VIP
看到「堆疊操作」與「後序式運算」,應直接聯想到堆疊的「後進先出(LIFO)」特性。解題重點在於條列出由左至右掃描後序式時,遇到運算元(Operand)進行 Push,遇到運算子(Operator)進行 Pop 並計算,最後將結果再 Push 回堆疊的完整流程,並附上簡單範例佐證。