单链表的建立
在这主要介绍头插法和尾插法
1、头插法建立单链表
void createListF(LinkNode* &L,Elemtype a[],int n)
{
LinkNode *s;
L=(LinkNode *)malloc(sizeof(LinkNode)); //创建一个头结点
L->next=NULL;
for(int i=0;i<n;i++)
{
s=(LinkNode *)malloc(sizeof(LinkNode));//创建一个新结点
s->date=a[i];
s->next=L->next;//插入结点,从原来结点的前面
L->next=s;
}
}
主要步骤:
1、创建一个新节点,然后使结点的地址域置空
2、利用循环,来得到更多的新节点,并逐个插入链表中
3、值得注意的是从原结点的前面插入
2、尾插法
void createListR(LinkNode* &L,Elemtype a[],int n)
{
LinkNode *s,*r;
L=(LinkNode *)malloc(sizeof(LinkNode));
L->next=NULL;//跟头插法前一部分书写方式一样
r=L;
for(int i=0;i<n;i++)
{
s=(LinkNode*)malloc(sizeof(LinkNode));//创建一个新结点
s->date=a[i];//从原结点后面插入
r->next=s;
r=s;//使最后一个结点始终为r结点
}
r->next=NULL;//结点创建完后,得把最后一个结点地址域设置为NULL
}