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
統計: 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。
ㅤㅤ

實際可能輸出
三個元素 A, B, C 的堆疊排列可能為:
-
A B C
-
A C B
-
B A C
-
B C A
-
C B A
(注意:C A B 無法由堆疊產生,因為要先輸出 C,必須先把 A、B 推入堆疊,但這樣會導致 B 在 C 之前被彈出。)
ㅤㅤ
✅ 正確答案: (B) 5 種
0
0