※ 引述《walks (蹦蹦跳跳)》之銘言:
: 不同編號的元素
: 規定 必須依編號順序由小到大進入堆疊,離開順序則不限定,
: 但整個過程需遵守堆疊後進先出的規則,其結果可以產生不同的排序順序.
: 依題意
: 有編號1,2,3的三個元素
: 欲用一個堆疊做排列
: 請問有幾種排列順序
: 答案是
: 123
: 132
: 213
: 231
: 321
: 五種
: 想請問一下 為什麼 不包含312 (假設 由小到大 132 也不符合呀)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
必須依編號順序由小到大進入堆疊!!!
也就是說 先看1 的情況 再來 2 、3
push(1) pop(1) push(2) pop(2) push(3) pop(3) => 123
push(1) pop(1) push(2) push(3) pop(3) pop(2) => 132
push(1) push(2) pop(2) pop(1) push(3) pop(3) => 213
push(1) push(2) pop(2) push(3) pop(3) pop(1) => 231
push(1) push(2) push(3) pop(3) pop(2) pop(1) => 321
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
312 你要3先出來就是說你1、2的動作都是push到stack裡面了
所以才可以push(3) 又pop(3) 出來
再來 stack的觀念就是 First-in last-out or last-in first-out
所以只有2先出來1才能有動作。
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.60.64.106