首页 > 代码库 > LRJ-Example-06-04-Uva11988

LRJ-Example-06-04-Uva11988

单向链表的元素存放在数组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]是当前链表的最后一个元素。

 

LRJ-Example-06-04-Uva11988