免費開始練習
普考申論題 106年 [資訊處理] 資料處理概要

第 二 題

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

小題 (二)

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

思路引導 VIP

面對運算式轉換題,建議考生優先聯想「堆疊(Stack)」的由右至左掃描法或繪製「二元運算樹(Binary Expression Tree)」。由右向左讀取前序式,遇到運算元即推入堆疊,遇到運算子則從堆疊彈出兩個運算元進行結合,此方法能有系統地避免括號邏輯混淆,並正確推導出中序與後序式。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用「堆疊(Stack)」由右至左掃描前序式,或建構「二元運算樹(Binary Expression Tree)」以逐步推導出中序式與後序式。 【詳解】 已知前序式(Prefix):++*AB/-CD-EFG

小題 (一)

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

思路引導 VIP

解此類運算式轉換題,最穩定且不易出錯的方法是「全括號法」。先依據運算子優先權(括號 > 乘除 > 加減)將原式完全加上括號,接著將運算子移至對應括號的左側(即為前序式)或右側(即為後序式),最後去除所有括號即可得到正確解答。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用「全括號法」依據運算子優先權將中序式完全括號化,再透過運算子移位法則進行轉換。 【詳解】 已知中序式(Infix):A+B*(C+D)+E/F

小題 (三)

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

思路引導 VIP

看到「後序式」與「堆疊」,應立刻聯想到計算機(特別是編譯器)評估數學運算式求值的經典演算法。答題時需先點出後序式的優勢(無括號、無優先權問題),接著詳細條列堆疊運算求值的標準流程(運算元 Push,運算子 Pop 並計算),最後以簡單實例佐證以獲取高分。

🤖
AI 詳解
AI 專屬家教

【破題】 在計算機科學中,編譯器(Compiler)處理算術運算式求值時,常將人類習慣的中序式轉為後序式,並利用堆疊(Stack)資料結構進行高效運算,其核心原理在於消除運算子優先權與括號的干擾,使計算過程得以循序單向進行。 【論述】