头插法:
/使用头插法建立单链表
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
}