我是自学的数据结构所以很多不懂的地方。 首先i=space[0].cur,那这时i=0? 然后分配
发布网友
发布时间:2022-09-25 00:02
我来回答
共1个回答
热心网友
时间:2023-09-14 21:00
先看算法2.14,它是初始化一个备用静态链表,此时space[0].cur=1,space[1].cur=2,...,space[MAXSIZE-2].cur=MAXSIZE-1,space[MAXSIZE-1].cur=0。
再看算法2.15,备用静态链表非空,也就是数组有空闲的单元,该空闲单元由space[0].cur指示。此时将这个空闲单元分配出去,并且修改space[0].cur的值,让它保存刚刚分配出去的单元中cur域指示的空闲单元。首先i=space[0].cur,这时i的值由0号单元的cur域决定,即space[0].cur。例如:刚刚初始化结束,此时调用算法2.15,那么i=space[0].cur=1,由于space[0].cur=1,所以if语句执行,space[0].cur=space[1].cur=2。并且返回可用的结点下标是1。如果再调用一次算法2.15,那么i=space[0].cur=2,...
热心网友
时间:2023-09-14 21:00
先看算法2.14,它是初始化一个备用静态链表,此时space[0].cur=1,space[1].cur=2,...,space[MAXSIZE-2].cur=MAXSIZE-1,space[MAXSIZE-1].cur=0。
再看算法2.15,备用静态链表非空,也就是数组有空闲的单元,该空闲单元由space[0].cur指示。此时将这个空闲单元分配出去,并且修改space[0].cur的值,让它保存刚刚分配出去的单元中cur域指示的空闲单元。首先i=space[0].cur,这时i的值由0号单元的cur域决定,即space[0].cur。例如:刚刚初始化结束,此时调用算法2.15,那么i=space[0].cur=1,由于space[0].cur=1,所以if语句执行,space[0].cur=space[1].cur=2。并且返回可用的结点下标是1。如果再调用一次算法2.15,那么i=space[0].cur=2,...