单向链表的元素存放在数组s[]中,next指针存放在数组next[]中。
链表初始为空,next[0] == 0 代表链表结尾,类似NULL指针,在最后打印链表的时候作为for循环结束的条件。
依次插入s[]数组中的每个元素,cur代表插入位置,即插入到s[cur]这个元素的后面,下面两句是插入s[i]时更新next指针
next[i] = next[cur]; // 待插入的元素是s[i]
next[cur] = i;
s[cur] ----> s[next[cur]]
^
||
s[i]
cur初始化为0,代表插入到链表的最前面
last代表插入到链表的最后面,也初始化为0,s[last]是当前链表的最后一个元素。
时间: 2024-10-03 22:41:38