moea_joint
111年
[資訊] 計算機原理、網路概論
第 16 題
在堆疊(Stack)結構上,依序存取資料如下:
push(‘A’) -> push(‘B’) -> pop() -> pop() -> push(‘C’) -> push(‘D’) -> pop() -> pop()
請問最後1次pop()所得之內容為何?
push(‘A’) -> push(‘B’) -> pop() -> pop() -> push(‘C’) -> push(‘D’) -> pop() -> pop()
請問最後1次pop()所得之內容為何?
- A ‘A’
- B ‘B’
- C ‘C’
- D ‘D’
思路引導 VIP
想像你有一個開口朝上的長管子,每次只能從最上面放入或取出球。如果你先後放進兩顆球並隨即將它們清空,接著又依序放入了「第一顆球」與「第二顆球」。現在,如果你必須連續把管子裡的球全部拿出來,請問哪一顆球會是最後一個離開管子的?它是先放進去的還是後放進去的?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地掌握了資料結構中堆疊 (Stack) 的核心運算!這題測驗的是對「後進先出 (Last-In, First-Out, LIFO)」原則的應用。在你的推導過程中,能夠清晰地辨識出每一次 pop() 所彈出的元素必定是目前最上方的資料,這展現了你對抽象運算流程擁有非常細膩的觀察力。
堆疊狀態的動態追蹤
我們可以將過程拆解為兩個階段。第一階段 push('A') 與 push('B') 建立起堆疊後,緊接著的兩次 pop() 會依序將 B 與 A 移除,使堆疊回歸初始的空值狀態。進入關鍵的第二階段,我們重新放入了 'C',再疊上 'D'。當執行倒數第二次 pop() 時,最後進入的 'D' 會被優先彈出;因此,執行到最後一次 pop() 時,所取得的內容正是先前被壓在下方的 'C'。
▼ 還有更多解析內容