单链表的建立有两种实现的方式:
(1) 一种是和输入的顺序相同
void CreateList_1(LinkList &L,int len)
{
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
LinkList p=L,q;
for (int i=1;i<=len;++i)
{
q=(LinkList)malloc(sizeof(LNode));
scanf("%d",&q->data);
p->next=q;
p=q;
}
p->next=NULL;
}
可以看出输入的顺序和输出的顺序是相同的。
(2)另一种是和输入的顺序相反
void CreateList_2(LinkList &L,int len)
{
LinkList p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for (int i=0;i<len;i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
可见顺序是相反的。