作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] do4的reference output
時間Mon Nov 23 21:47:44 2009
啊, 我上個星期三答應某位同學要檢查一下 ref code 的...
我想這個可能會因為不同的 implement 而有所不同...
主要的原因是在 getMem(t) 時, 我利用了 getMemRecycleList(n)
去檢查一下是否已經有 recycle 的 element.
而 getMemRecycleList(n) 根據 spec 如果相對應的 recycle list 不在,
則會產生一個 _arrSize = n 的空的 RecycleList.
換句話說, Recycle list 的排法並不是依照 delete 時 recycle 的順序,
而是會按照 new [] 出現的順序.
這個問題好像以前討論過, 我想我以後在這個地方要將 spec 再定義更精確一點...
今年就先這樣, 256 or 512 先都沒有關係,
但是還是希望大家盡量寫得跟 ref program 一樣, 免得造成 TA 太多的困擾
※ 引述《whing1332 (我)》之銘言:
: 用reference program 跑出來的結果
: 有一行 mtd -r 2 -a
: 在recycle list裡面對應出現的結果是
: [0]=1 [256]=1 [512]=1
: 不過我的跑出來是
: [0]=1 [512]=1 [256]=1
: 如果改成 mtd -r 1 -a的話
: 都會是[0]=1 [512]=1
: 也就是512的先被刪除
: 照題目的要求 在getList裡面
: 應該是先被刪除的就放前面 不需要排序吧
: 所以先刪除512後再刪除256
: 應該會先印出512吧
: 所以是要排序
: 還是reference code 有做排序
: 但我們不用排序呢?
: 還是我看錯題目的意思了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.1.122
1F:推 whing1332:原來是這樣, 結果我在getMem時還為了避免產生新的 11/23 22:07
2F:→ whing1332:recyclelist而不敢直接叫getMemRecycleList... 11/23 22:08
3F:→ ric2k1:orz... sorry. spec 的確應該是要像你那樣, 但是也要考慮 11/23 22:11
4F:→ ric2k1:一下怎麼寫 code 比較乾淨... 11/23 22:11
5F:→ goodword:可以參考 上學期的 1946篇與 1947篇~` 11/23 22:48
6F:推 slinh:是覺得new出來的區塊不一定會被delete阿 XD 11/24 21:48
7F:→ slinh:所以想要等被delete時才開list來回收 11/24 21:49
8F:→ ric2k1:是啊, 以後會將 spec 如此定義好 11/24 22:03