[问题] 关于作业三

楼主: tempTTP1 (任剑翔)   2011-11-10 00:41:24
助教,各位同学:
有些关于作业三的问题想请问一下,
hfpage.h:
slotCnt是存目前有资料的slot数目,所以不包含被删掉的record的slot吗?
请问data[1024]也有包含slot array的部分吗?
注解说slot_t slot[1]存的就是第一个element,所以是新增一个record和slot之后的那
个slot还是slot array的开头[0]?
另外想请问struct slot_t的offset和length又是要存什么?投影片上说slot是空的就
要把length设成-1,但是一个page不就只有空间=1的slot_t吗?但是slot应该不只一个吧?
function部分:
请问为什么要有firstRecord()吗?是要把一个page的第一个record替换成其他page的某
个slot对应到的record?
想问一下nextRecord()的意思是给一个record,要找到下一个record放入nextRid这样吗?
谢谢助教,各位同学的解答
作者: vdm9999   2011-11-10 22:59:00
slot是array 但他是往回长 可以用(slot-i)拿到第i个memberrecords 跟 slots 都在 data[]里从sample_output的Test4 dumpPage部分可以看出slot[0]也有用到firstRecord() 跟 nextRecord() 主要是在traversal时用到
楼主: tempTTP1 (任剑翔)   2011-11-10 23:12:00
谢谢楼上
作者: vincimrs (green)   2011-11-10 23:28:00
slotCnt是指有用到的slot个数 empty就不算还有Slot是从Slot[0]开始 然后它是往回长的 所以要用Slot[-i] 来往前抓第i个slot_t 的length是指这个slot指到的record的length关于firstRecord() 如果是用slot number来决定record顺序那就是回传被最前面的slot指到的第一个recordnextRecord()没错就是这个意思
楼主: tempTTP1 (任剑翔)   2011-11-11 00:40:00
谢谢助教 不好意思,我应该先看前面的文章再问的...还有不知道能不能问一下...page之间要怎么traversal?只是调换curPage,prevPage,nextPage吗?但是page改变的话slotCnt或一些变量不就要从重新开始计算了?还是我有搞错..? 谢谢解答~

Links booklink

Contact Us: admin [ a t ] ucptt.com