LONGEPASS
Q15.

X、Y、Z,三個符號依序壓入(Push)到堆疊(Stack)中,壓入過程中,在堆疊內的元素可隨時彈出(Pop)堆疊,下列的輸出中,何者不可能由堆疊中產生出來?

電腦軟體設計共同科目 · 乙級 · Q15

難易度分析

3 / 5

本題要求考生模擬堆疊的運作流程,並透過邏輯推論排除不可能的輸出序列。由於必須對多個選項分別驗證操作步驟,且需精確掌握後進先出原則以避免混淆,因此被評定為此難度。

正確答案:④ZXY

④ ZXY:ZXY 是不可能產生的序列。要讓 Z 最先輸出,必須將 X、Y、Z 全部壓入堆疊,此時堆疊由底到頂為 X、Y、Z。彈出 Z 後,堆疊頂端是 Y 而非 X,因此下一個輸出必然是 Y,無法得到 X 在 Y 之前的 ZXY 排列。

錯誤選項解析

  • ① XYZ:XYZ 是合法的堆疊輸出序列。依序將 X 壓入後立即彈出得到 X,再將 Y 壓入後立即彈出得到 Y,最後將 Z 壓入後彈出得到 Z,即可產生 XYZ 序列。
  • ② YXZ:YXZ 是合法的堆疊輸出序列。先將 X、Y 依序壓入堆疊,彈出 Y 得到第一個輸出,再彈出 X 得到第二個輸出,最後壓入 Z 並彈出即可得到 YXZ。
  • ③ YZX:YZX 是合法的堆疊輸出序列。先將 X、Y 壓入堆疊,彈出 Y 後,再將 Z 壓入並彈出得到 Z,最後彈出堆疊底部的 X,即可產生 YZX 序列。
Learning Tip

"堆疊 (Stack) 遵循 LIFO(後進先出) 原則。此類題型的常考陷阱在於判斷給定輸入順序下,哪些輸出排列是堆疊不可達排列 (Stack-inaccessible Permutation)。解題關鍵:當某個元素要輸出時,所有比它更早壓入且尚未彈出的元素,必須按照由頂到底的順序依序彈出,無法跳過中間元素。對於 n 個元素的合法輸出序列數為 卡塔蘭數 (Catalan Number),公式為 C(n) = (2n)! / ((n+1)! × n!),三個元素時共有 5 種合法排列。"

學員答題分佈

①XYZ0%
②YXZ0%
③YZX0%
④ZXY0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目