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

第 三 題

請撰寫一演算法,透過堆疊(stack)以計算出一後序式數學運算式(Postfix Expression)(例如"E=23*5+")之結果。假設運算式中只含加、減、乘、除(+, -, *, /)四種運算子(operator),及 0, 1, …, 9 十種運算元(operant)。(10 分)
📝 此題為申論題

思路引導 VIP

看到此題,應立即聯想堆疊(Stack)「後進先出(LIFO)」的特性。解題核心在於「由左至右掃描字串:遇運算元則 Push,遇運算子則 Pop 兩次取值計算後再 Push」,並務必提醒考官先 Pop 出的是「右運算元」,後 Pop 出的為「左運算元」。

🤖
AI 詳解 AI 專屬家教

【破題】計算後序式(Postfix Expression)的核心在於利用堆疊(Stack)「後進先出(LIFO)」的資料結構特性,由左至右掃描表示式,透過暫存運算元的方式,在遇到運算子時立即進行計算。 【論述】 一、演算法邏輯與步驟

▼ 還有更多解析內容
📝 堆疊應用:後序式運算
💡 利用堆疊後進先出特性,暫存運算元並在遇到運算子時即時求值。

🔗 後序運算式求值演算法流程

  1. 1 掃描讀取 — 由左至右逐一讀取字串中的 Token。
  2. 2 判別推入 — 若為數字,則 Push 進入堆疊暫存。
  3. 3 彈出計算 — 若為運算子,Pop 兩次取出運算元並依序計算。
  4. 4 推回結果 — 將計算出的新數值重新 Push 入堆疊。
  5. 5 結束輸出 — 字串讀完後,Pop 堆疊頂端元素作為最終結果。
🔄 延伸學習:延伸學習:中序轉後序的演算法(Infix to Postfix)同樣依賴堆疊,但暫存的是運算子。
🧠 記憶技巧:遇數推入、見符彈二、後左先右、結果推回。
⚠️ 常見陷阱:在處理減法與除法時,容易將運算元順序弄反,必須確保「後彈出者」位在運算子左側(即先入堆疊者為左操作數)。
中序式轉後序式 前序式運算 運算子優先順序 堆疊空間複雜度分析

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

資料結構、儲存方式與作業系統概論
查看更多「[統計] 資料處理概要」的主題分類考古題

📝 同份考卷的其他題目

查看 114年[統計] 資料處理概要 全題