创建单链表的过程是一个动态生成链表的过程。应依次建立各个结点,并逐个插入链表
给出头插法
//随机产生n个元素的值,建立代表头结点的单链线性表L(头插法)
void CreateListHead(LinkList * L,int n)
{
LinkList p;
int i;
srand(time(0)); //随机产生数
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL; //先建立一个带头结点的单链表
for (i=0;i<n;i++)
{
p = (LinkList)malloc(sizeof(Node)); //生成新结点
p->data = rand()%100+1; //随机生成1001以内的数字
p->next = (*L)->netx;
(*L)->next = p; //插入到表头
}
}
尾插法:
//随机产生n个元素的值,建立代表头结点的单链线性表L(头插法)
void CreateListTail(LinkList * L,int n)
{
LinkList p,r;
int i;
srand(time(0)); //随机产生数
*L = (LinkList)malloc(sizeof(Node));
r = *L;
for (i=0;i<n;i++)
{
p = (LinkList)malloc(sizeof(Node)); //生成新结点
p->data = rand()%100+1; //随机生成1001以内的数字
r->next = p; //将表尾终端结点指向新结点
r = p; //将当前新结点定义为表尾终端结点
}
r->next = NULL; //表示当前链表结束
}