static链表的学习

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;// 链表的结束端连接起来新的备用链表。
}

 

posted @ 2022-04-16 00:10  郭楠代码  阅读(30)  评论(0)    收藏  举报