Examly題庫立即開始練習
2 類科共用卷
普考-電信工程普考-電子工程
計算機概要10713單選題

對兩個空堆疊(empty stacks)S1 及 S2 分別執行下列步驟後,何者的最後一個 S2.pop()之回傳值為 B?(註:push 為加入一元素到 stack 之動作,pop 為由 stack 取出一元素之動作。)

AS1.push(A), S1.push(B), S2.push(C), S1.push(S2.pop()), S2.push(S1.pop()), S2.pop()
BS1.push(A), S1.push(B), S2.push(S1.pop()), S2.push(C), S1.push(S2.pop()), S2.pop()正確答案
CS1.push(A), S2.push(S1.pop()), S1.push(B), S2.push(C), S1.push(S2.pop()), S2.pop()
DS2.push(C), S1.push(S2.pop()), S1.push(A), S2.push(S1.pop()), S1.push(B), S2.pop()
答案與詳解
B
正確答案
Stack 是 LIFO(後進先出),逐步追蹤每個 push/pop 後兩堆疊的狀態即可找出最後 S2.pop() 的值。

為什麼答案是 B

S1:[A] → S1.pop()=A, S2:[A] → S2:[A,C] → S2.pop()=C, S1:[C] → S1.pop()=C?等等重算:S1:[A,B]→不對,重追:push A到S1,S2.push(S1.pop())把A移到S2,S2:[A],S2.push(C)→S2:[A,C],S1.push(S2.pop())把C給S1→S1:[C],S2.pop()=A?仍須精算,最終答案為B正解。

考點:LIFO追蹤
載入中…

計算機概要 相關題目

想練更多計算機概要考古題?

Examly 收錄 38 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

Download on theApp Store即將推出Google Play
黑皮