单链表的插入法主要分为两种(头部插入法以及尾部插入法)。
下面就分别介绍这两种插入法。
头部插入法:
LinkList f2(LinkList &L)//头部插入法
{
int x;
cin >> x;//先输入数据
f1(L);//初始化
while (x != 999)//结束条件
{
LNode* p = (LNode*)malloc(sizeof(LNode));
p->next = L->next;//将新结点的指针域指向之前输入的一个结点指针域
p->data = x;//输入新结点的数据域
L->next = p;//将L的指针域指向p
cin >> x;//继续输入数据
}
return L;
}
头部插入法的输入顺序与实际排序顺序是完全想反的。
如 输入顺序 1 2 3 4 5 6 7 8 9 999
则实际顺序 9 8 7 6 5 4 3 2 1
尾部插入法:
LinkList f3(LinkList &L)//尾部插入法
{
f1(L);//初始化
int x;
cin >> x;//先输入数据
LNode* p, * q=L;//创建两个临时变量,并将L赋予q
while (x != 999)//结束条件
{
p = (LNode*)malloc(sizeof(LNode));
q->next = p;//q的指针域为p
p->data = x;//输入数据
q = p;//将p赋予q
cin >> x;//继续输入数据
}
q->next = NULL;//将最后一个结点的指针域赋予NULL
return L;
}
尾部插入法的输入顺序与实际顺序是完全相同的。
如 输入顺序 1 2 3 4 5 6 7 8 9 999
则实际顺序为 1 2 3 4 5 6 7 8 9