15 某程式產出一個資料序列,依 A、B、C 的順序(A 最先)輸入到一個空的堆疊(Stack),藉由推入 (Push)、彈出(Pop)的動作以改變原本的資料順序,總共有幾種可能的輸出順序?
(A) 6 種
(B) 5 種
(C) 4 種
(D) 3 種

答案:登入後查看
統計: A(10), B(10), C(9), D(3), E(0) #3966679

詳解 (共 1 筆)

#7448878

思考過程

  • 原始輸入序列:A → B → C

  • 堆疊操作:只能 Push(推入)或 Pop(彈出)。

  • 問題:總共有幾種可能的輸出順序?

關鍵概念

  • 對於 n 個元素,堆疊能產生的輸出順序數量,符合 Catalan number

  • 當 n = 3 時,Catalan(3) = 5。

ㅤㅤ
6a5d64ef188da.jpg

實際可能輸出

三個元素 A, B, C 的堆疊排列可能為:

  1. A B C

  2. A C B

  3. B A C

  4. B C A

  5. C B A

(注意:C A B 無法由堆疊產生,因為要先輸出 C,必須先把 A、B 推入堆疊,但這樣會導致 B 在 C 之前被彈出。)

ㅤㅤ

正確答案: (B) 5 種

0
0

私人筆記 (共 1 筆)

私人筆記#8508883
未解鎖
答案:(B) 5 種 解析: 本題考查...
(共 554 字,隱藏中)
前往觀看
1
1