[問題] 關於作業三

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