免費開始練習
地特四等申論題 106年 [資訊處理] 資料處理概要

第 一 題

📖 題組:
三、運算式(Expression)有三種表示方式:中序式(Infix)、前序式(Prefix)、後序式(Postfix)。
📝 此題為申論題,共 3 小題

小題 (一)

請將中序式 A+B*(C+D)+E/F 轉換為前序式及後序式。(10 分)

思路引導 VIP

看到運算式轉換題目,首要任務是確認運算子的優先級(括號最高,乘除次之,加減最低)與結合律(同級由左至右)。推薦使用「完全括號法」,將每個運算步驟明確加上括號,再將運算子移至括號前(前序)或括號後(後序),即可確保轉換絕對正確。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用運算子優先順序與結合律,採用「完全括號法」將運算式逐步轉換。 【詳解】 已知中序式:A + B * (C + D) + E / F

小題 (二)

請將前序式 ++*AB/-CD-EFG 轉換為中序式及後序式。(10 分)

思路引導 VIP

看到前序式轉換,建議優先畫出「二元運算式樹(Expression Tree)」,或是採用「由右至左掃描,遇到運算子即合併相鄰兩個運算元」的堆疊法。這種逐步合併的方式能最直觀且不易出錯地推導出中序與後序式。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用由右至左掃描前序式,並逐步將運算子與相鄰的兩個運算元/子運算式結合,推導出中序式與後序式。 【詳解】 已知前序式:+ + * A B / - C D - E F G

小題 (三)

在堆疊(Stack)的操作中,會使用後序式的觀念,請說明其原理。(10 分)

思路引導 VIP

看到「堆疊操作」與「後序式運算」,應直接聯想到堆疊的「後進先出(LIFO)」特性。解題重點在於條列出由左至右掃描後序式時,遇到運算元(Operand)進行 Push,遇到運算子(Operator)進行 Pop 並計算,最後將結果再 Push 回堆疊的完整流程,並附上簡單範例佐證。

🤖
AI 詳解
AI 專屬家教

【破題】 後序式(Postfix)將運算子置於運算元之後,因不需考慮括號及運算子優先權,極適合利用具備「後進先出(LIFO)」特性的堆疊(Stack)結構來進行電腦求值計算。 【論述】

升級 VIP 解鎖