作者yantchen (球童Yanting)
看板NTUE-CS102
標題[課業] 怪手
時間Wed Mar 24 00:10:27 2010
很多人跟我說今天第一次上C++沒有壓力XD
這.. 大家可以祈禱王老常常請假.. 哈哈
阿巫記得MSN!! 170以上的幫我過濾掉
--- 以上廢話分隔線 ---
作業時間我稍微往後調一點 改成4/1晚上唷
小小的作業怎麼可以耽誤到星光勒!!
這次作業不限定方法
下面我稍微提示一下用串列跟陣列的作法
大部分的人一看到題目就會想到用串列
因為最近作業都是串列
然後他的特性 145 把 1 移到 3 上面的時候 還是保持 145
剛好就是串列
我的作法是 用9個head
head串方塊 最後串NULL
例如 head[1]->block[1]->block[4]->block[5]->NULL
我的方法會有 9 個NULL 但也不一定要這樣接 泡泡就是用 每串的最後面接到下一個
總之串列的方法 要注意的地方是
1. 先設計你的串列 是用9個head接它上面的方塊然後NULL 或者其他方法
2. 把 x 移到 y, 首先要從9個區域找出 x
3. 把 x 前面一個接地
4. 找出 y 最後一個 接 x
仔細看一下 是不是跟前面的作業很類似 只是現在有 9 串
如果 9 串太多有點複雜的話 就先試試看 2 串的
陣列的話啊
就是開 9x9 的陣列
a[1][1] 就放 區域1的第一塊 例如 1
a[1][2] 就放 區域1的第二塊 例如 4
..
a[9][1] 就放 區域9的第一塊
你可以用 0 代表沒東西
這樣移動就變成
1. 從 9x9 找出 x 的位置
2. 把 x 往上到0 複製到 y 的上面
3. 把 原本 x 以上的位置填 0
看不懂? 沒關係
因為步驟又比上個作業多了一點 所以一下有點亂是正常的
如果你用串列做 那就把 插中間 的程式碼跟方法再看一下
看懂了 我想這個作業也不是太難 只是個變化題
大家加油 下次上課可以繼續寫~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.127.36.183
推 CaptainWill:先推先贏 03/24 00:10
推 gcobc12632: 二推也贏 03/24 00:12
推 Tuko: 三推 03/24 00:12
推 garfield112:四推 03/24 00:13
推 Arashinoon: 五推 03/24 00:14
噓 gcobc12632: 以上三樓皆輸 03/24 00:15
推 CaptainWill:阿泰你...勇者 囧 03/24 00:15
→ yantchen: 我看到Arashinoon拿著凼 他非常火 03/24 00:18
推 s86186654418:元品冷靜 03/24 00:23
推 CaptainWill:我也有 凼(捧 XD 03/24 00:25
推 j2612280:GOOD~XD 03/24 00:28
推 dieinreality:推推推 170以上的我沒有 放心!! 03/24 00:30
→ Tuko:睡覺去~ 03/24 00:56