版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zztingfeng/article/details/90343130
单链表的创建方法有两种:头插法和尾插法。
头插法是将新增结点插入第一个结点之前,示意图如下:
尾插法是将新增结点插入最后一个结点之后,示意图如下:
代码片段
//用头插法创建带头结点的单链表
void LinkedListCreateHeadL(LinkedList L, ElemType a[n])
{
L=(LNode *)malloc(sizeof(LNode));
if(L==NULL)
{
printf("申请空间失败!");
exit(0);
}
L->next=NULL;
for(i=0; i<n; i++)
{
p=(LNode *)malloc(sizeof(LNode));
if(p==NULL)
{
printf("申请空间失败!");
exit(0);
}
p->data=a[i];
p->next=L->next;
L->next=p;
}
}
//用尾插法创建带头结点的单链表
void LinkedListCreateTailL(LinkedList L, ElemType a[n])
{
L=(LNode *)malloc(sizeof(LNode));
if(L==NULL)
{
printf("申请空间失败!");
exit(0);
}
L->next=NULL;
tail=L; //设置尾指针,方便插入
for(j=0; j<n; j++)
{
p=(LNode *)malloc(sizeof(LNode));
if(p==NULL)
{
printf("申请空间失败!");
exit(0);
}
p->data=a[j];
p->next=NULL;
tail->next=p;
tail=p;
}
}