[问题] HW 4

楼主: DerekB98126 (修士)   2012-11-26 03:48:55
以下的function都会有 struct RID 的argument
deletRecord, exchangeRecord, nextRecord, getRecord, returnRecord
请问那些传入的struct RID argument的slotNo会是正数还是负数?
同样地,在 insertRecord, firstRecord, nextRecord 当中,都会有一个struct RID
by reference argument
请问那个slotNo我们应该传正数还是负数?
如果是正数的话 我发现了以下这段code:
hfp_driver.C
line 351~362
//Deletion of empty page
Rid.pageNo=tmpPID; Rid.slotNo=-6; status = hfp.deleteRecord(Rid);
if (status == OK)
cout << "ERROR: empty space deletion.\n" << endl;
else
cout << "No record is deleted.\n"<<endl;
Rid.pageNo=tmpPID; Rid.slotNo=6; status = hfp.deleteRecord(Rid);
if (status == OK)
cout << "ERROR: improper deletion.\n" << endl;
else
cout << "No record is deleted. \n" <<endl;
当中可以看到如果传入argument的slotNo是正数时,会做成 improper deletion.
而负数时是empty space deletion
我的理解是slotNo是负数才是正确的argument(因为是proper deletion)
但如果负数才是正确的argument
参考sample_output
insertRecord的struct RID argument by reference回传的slotNo值应该是正数
Test 2: Insert and traversal of records
Inserted record, RID 7, 0
Inserted record, RID 7, 1
Inserted record, RID 7, 2
Inserted record, RID 7, 3
为什么insertRecord回传的slotNo值是正数呢?
还是应该想像成传出时是正数 但传入时是负数呢? (<
楼主: DerekB98126 (修士)   2012-11-26 03:51:00
其实如果传出传入的slotNo都是正数的话,output才会和sample_output一样
作者: peteranny (阿Tin)   2012-11-26 09:56:00
slotNo 是正数咦没事,我没看完你写的,看完后我也不解了= =

Links booklink

Contact Us: admin [ a t ] ucptt.com