作者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