static链表是数组链表。
通常数组的最后一个元素作为链表的头节点。
其中的malloc和free的写法值得学习。
int Malloc_SSL(StaticLinkList space) { int i = space[0].cur; // 这是将链表最后一个值的下一个值的标记值给保留了下来。也就是指向功能 if (space[0].cur != ListLength(space)) { space[0].cur = space[i].cur;// 这是将预备链表里面的一个值给截取了下来放在了space的cur中。链表的cur指到就意味这 // 它是优先录用的 } }
代码中少了return i;
这个是free:
// 删除操作不仅在链表中抹去这个值的存在,要将其添加到预备链表中。 // Free_SSL的操作是将其放在了预备链表的优先级上了。 // 这个位置人走了,但是位置降低了,但是仍然先用它 void Free_SSL(StaticLinkList space,int k) { space[k].cur = space[0].cur;// 将备用链表和被释放的空间连接起来。 space[0].cur = k;// 链表的结束端连接起来新的备用链表。 }