头插法:
/使用头插法建立单链表
void CreastLsitF(LinkNode* L, ElemType a[], int n)
{
LinkNode* s;
L = (LinkNode*)malloc(sizeof(LinkNode));//创建头结点
L->next = NULL;//将next置为NULL
for (int i = 0; i < n; i++)
{
s = (LinkNode*)malloc(sizeof(LinkNode));
s->data = a[i];//创建数据结点s
s->next = L->next;//将s插入到原首结点之前,头结点之后
L->next = s;
}
}
尾插法:
void CreatListR(LinkNode* L, ElemType a[], int n)
{
LinkNode* r, * s;
L = (linkNode*)malloc(sizeof(linkNode));//创建头结点
r = L;//r指向尾指针,初始化时指向头指针
for (int i = 0; i < n; i++)
{
s = (LinkNode*)malloc(sizeof(LinkNode));//创建数据结点s
s->data = a[i];
r->next = s;//将S插入到r的后面
r = s;
}
r->next = NULL;//尾结点的next为NULL
}
本文详细介绍了如何使用头插法和尾插法分别创建单链表,包括C语言实现的CreastLsitF和CreatListR函数。通过这两种方法,读者可以理解如何动态地在链表的头部和尾部添加节点。
1299

被折叠的 条评论
为什么被折叠?



