创建单链表的过程就是动态生成链表的过程,从“空表”的初始状态,依次建立各元素结点,并逐个插入链表。
单链表创建的思路:
一、头插法
1.声明一个结点p和计数器变量i
2.初始化一个空链表链表L
*L=(LinkList)malloc(Node)
3.L的头结点的指针指向NULL,即创建一个带有头结点的单链表
4.循环:
p=(LinkList)malloc(Node)
p->data=rand()%100+1
p->Next=(*L)->Next
(*L)->Next=p //将p插到头结点和上一结点之间,此处为插入到表头
二、尾插法
1.声明一个结点p,尾结点r,计数器i
2.初始化一个空链表L
3.r指向链表尾部
4.循环
void CreateListTail(LinkList *L,int n)
{
LinkList p,r;
int i;
srand(time(0));
*L=(LinkList)malloc(Node);
r=*L;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(Node);
p->data=rand()%100+1;
r->Next=p;
r=p;
}
r->Next=NULL;
}