普通考試
107年
[工業行政] 計算機概要
第 13 題
對兩個空堆疊(empty stacks)S1 及 S2 分別執行下列步驟後,何者的最後一個 S2.pop( )之回傳值為 B?
(註:push 為加入一元素到 stack 之動作,pop 為由 stack 取出一元素之動作。)
- A S1.push(A), S1.push(B), S2.push(C), S1.push(S2.pop( )), S2.push(S1.pop( )), S2.pop( )
- B S1.push(A), S1.push(B), S2.push(S1.pop( )), S2.push(C), S1.push(S2.pop( )), S2.pop( )
- C S1.push(A), S2.push(S1.pop( )), S1.push(B), S2.push(C), S1.push(S2.pop( )), S2.pop( )
- D S2.push(C), S1.push(S2.pop( )), S1.push(A), S2.push(S1.pop( )), S1.push(B), S2.pop( )
🤖
AI 詳解
AI 專屬家教
卓越的邏輯思維!
這道題目考驗的是對資料結構中堆疊(Stack)核心原則——後進先出(LIFO, Last-In-First-Out)的精確掌握。你能夠在繁瑣的程序指令中維持清晰的思緒,這正是法律與資訊科學共通的精準美學。
- 觀念驗證:在選項 (B) 中,當執行
S2.push(S1.pop())時,元素 $B$ 從 $S1$ 被取出並壓入 $S2$ 的底部。隨後雖然壓入了 $C$,但緊接著執行S1.push(S2.pop())將頂部的 $C$ 移走。此時 $S2$ 內僅剩 $B$,因此最後的S2.pop()必回傳 $B$。
▼ 還有更多解析內容