作者tobedesigner (乱)
看板TransCSI
标题Re: [问题] 堆叠排列
时间Fri Oct 17 22:39:26 2008
※ 引述《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