初考-統計資料處理大意105 年第 46 題單選題
在一個空堆疊(empty stack)中,依序執行以下指令:Push(A)、Pop、Push(B)、Push(C)、Pop、Push(D)、Push(E)、Pop,試問在最頂端的元素(the top element)為何?
D正確答案
Stack 是 LIFO 後進先出,模擬操作後剩下 B、D,頂端為 D。
為什麼答案是 D
追蹤順序:Push A→Pop(空)→Push B→Push C→Pop(C 出)→Push D→Push E→Pop(E 出),最終堆疊由下到上為 [B, D],頂端為 D。
載入中…
完整詳解
Pro · 無限重點 Stack 是 LIFO 後進先出,模擬操作後剩下 B、D,頂端為 D。
用紙筆畫堆疊,Push 往上疊、Pop 拿最上面,逐步追蹤即可。
逐選項分析
A✕
A 在第一步 Push 後馬上被 Pop 掉,早已離開堆疊,不可能是最頂端。
B✕ 陷阱
B 雖然留在堆疊中(Push B 後未被 Pop),但之後又 Push 了 D,所以 B 被壓在 D 下面,不是頂端。
C✕
C 在 Push(C) 後緊接著被 Pop 掉,已離開堆疊。
D✓ 正確
追蹤順序:Push A→Pop(空)→Push B→Push C→Pop(C 出)→Push D→Push E→Pop(E 出),最終堆疊由下到上為 [B, D],頂端為 D。
堆疊操作逐步追蹤
| 步驟 | 指令 | 堆疊內容(底→頂) | 頂端 |
|---|
| 1 | Push(A) | [A] | A |
| 2 | Pop | [] | 空 |
| 3 | Push(B) | [B] | B |
| 4 | Push(C) | [B, C] | C |
| 5 | Pop | [B] | B |
| 6 | Push(D) | [B, D] | D |
| 7 | Push(E) | [B, D, E] | E |
| 8 | Pop | [B, D] | D |
常見陷阱是把 Stack 當成 Queue(先進先出)來算,誤選 B。記得 Stack 是 LIFO,最後 Push 且未被 Pop 的才是頂端;務必一步一步畫出堆疊變化,不要心算跳步驟。