普考-資訊處理計算機概要105 年第 38 題單選題
程式中的遞迴呼叫(recursive call)在電腦系統執行時是運用那一種資料結構的概念來完成?
A雜湊表(Hash Table)
B佇列(Queue)
C堆疊(Stack)正確答案
D樹(Tree)
C正確答案
遞迴呼叫靠「呼叫堆疊(Call Stack)」運作,後進先出 LIFO 完美符合函式返回順序。
為什麼答案是 C
遞迴時每次呼叫會將參數、區域變數、返回位址 push 進 Call Stack,函式結束時 pop 回復。後進先出(LIFO)正好對應「最後呼叫的先返回」。
載入中…
完整詳解
Pro · 無限重點 遞迴呼叫靠「呼叫堆疊(Call Stack)」運作,後進先出 LIFO 完美符合函式返回順序。
看到「遞迴」「函式呼叫」→ 直接選 Stack,這是計概送分題。
逐選項分析
A✕
雜湊表用於快速查找(key-value 對應),與函式呼叫順序無關。
B✕ 陷阱
Queue 是先進先出(FIFO),若用 Queue 則最先呼叫的函式會最先返回,順序完全錯誤。常見於作業系統排程、BFS。
C✓ 正確
遞迴時每次呼叫會將參數、區域變數、返回位址 push 進 Call Stack,函式結束時 pop 回復。後進先出(LIFO)正好對應「最後呼叫的先返回」。
D✕
樹狀結構用於階層關係(如檔案系統、DOM)。雖然遞迴「呼叫過程」可畫成樹,但實際執行時系統仍是用 Stack 管理。
四大資料結構應用對照
| 結構 | 特性 | 典型應用 | 是否用於遞迴 |
|---|
| Stack | LIFO 後進先出 | 遞迴、運算式求值、Undo | ✅ 核心 |
| Queue | FIFO 先進先出 | CPU 排程、BFS、列印佇列 | ❌ |
| Hash Table | O(1) 查找 | 字典、快取、索引 | ❌ |
| Tree | 階層式 | 檔案系統、BST、DOM | ❌ |
最常見陷阱是誤選 Queue。記住:遞迴「最後呼叫的函式要最先返回」,這是 LIFO,必為 Stack。若系統用 Queue 管理函式呼叫,程式根本無法正確返回上層。