Q209.
一連串的push(推入)與pop(取出)可改變一個序列的順序,例如原始序列為1,2,3,經由push,pop,push,push,pop,pop 操作後,將變成1,3,2 。若原始序列為1,2,3,4,5,6,經由相關操作後,可能產生的序列有那些?
電腦軟體設計共同科目 · 乙級 · Q209
難易度分析
4 / 5
本題採複選形式,要求考生對多個選項逐一模擬堆疊操作過程,必須精確判別每個序列是否符合後進先出原則,且需排除邏輯矛盾的選項,增加了分析複雜度。
正確答案 (複選):①, ②, ③
- ① 2,1,5,4,3,6:此序列可由 堆疊 (Stack) 的 LIFO (後進先出) 特性達成。操作順序:push(1), push(2), pop→2, pop→1, push(3), push(4), push(5), pop→5, pop→4, pop→3, push(6), pop→6,即可得到 2,1,5,4,3,6。
- ② 3,2,4,1,6,5:此序列同樣符合 堆疊操作規則。操作順序:push(1), push(2), push(3), pop→3, pop→2, push(4), pop→4, pop→1, push(5), push(6), pop→6, pop→5,即可得到 3,2,4,1,6,5。
- ③ 3,2,1,6,5,4:此序列為典型的 全部推入後依序彈出 模式。操作順序:push(1), push(2), push(3), pop→3, pop→2, pop→1, push(4), push(5), push(6), pop→6, pop→5, pop→4,即可得到 3,2,1,6,5,4。
錯誤選項解析
- ④ 1,5,4,6,2,3:此序列無法由堆疊操作產生。當輸出至 1,5,4,6 後,堆疊內剩餘元素由上至下為 3,2,依 LIFO 原則 只能先彈出 3 再彈出 2,故實際可得 1,5,4,6,3,2,而非 1,5,4,6,2,3。
Learning Tip
"本題核心考點為 堆疊 (Stack) 的 LIFO 特性 與 合法輸出序列的判斷。關鍵技巧:依序模擬 push/pop 過程,若某元素需先於堆疊上方的元素彈出,則該序列不可能達成。常見陷阱是忽略堆疊頂端的元素必須優先取出,實務上可使用「當前堆疊內容追蹤法」逐一驗證,避免直覺誤判。"
學員答題分佈
①2,1,5,4,3,60%
②3,2,4,1,6,50%
③3,2,1,6,5,40%
④1,5,4,6,2,30%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!
相似類型題目
X、Y、Z,三個符號依序壓入(Push)到堆疊(Stack)中,壓入過程中,在堆疊內的元素可隨時彈出(Pop)堆疊,下列的輸出中,何者不可能由堆疊中產生出來?
將資料1、2、3、4 依序分別經由堆疊(Stack)做排列,則下列何者為不可能之輸出?
若有一堆疊(Stack)的資料結構,PUSH(X)代表將暫存器X 的內容放入堆疊當中,POP(X)代表從堆疊取出一個數字放入暫存器X 中。假設暫存器A、B、C、D 的內容分別為20、30、40、50,則依序執行PUSH(A)、PUSH(B)、PUSH(C)、POP(A)、PUSH(D)、PUSH(B)、POP(A)、POP(B)後,暫存器B 中的內容為何?
將資料1、2、3、4 依序分別經由佇列(Queue)做排列,則下列敘述何者是正確的?
下列有關堆疊(Stack)及佇列(Queue)的敘述,何者正確?