实现算法如下:
/*随机产生n个元素的值,建立带头结点的单链线性表L*/
void CreateListHead(LinkList *L, int n)
{
LinkList p,r;
int i;
srand(time(0)); //初始化随机数种子
*L = (LinkList)malloc(sizeof(Node)); //创建线性表
r = *L; //r为指向尾部的结点
for(i=0;i<n;i++)
{
p = (Node*)malloc(sizeof(Node)); //生成新结点
p->data = rand()%100+1; //随机生成100以内的数字
r->next = p; //将尾端结点的指针指向新结点
r = p; //将新结点定义为尾端结点
}
r->next = NULL; //当前链表结束
}
注意,L是指整个单链表,r是指向尾结点的变量。