一.前言
单链表的建立一共有两种方法,一种是头插法,将元素插入在链表的头部,也叫前插法。另外一种则就是尾插法,将元素插入在链表尾部,也叫后插法。
二. 头插法
首先从一个空表开始,重复读入数据;接着生成新结点,将读入的数据存放到新结点的数据域当中;最后从最后一个结点开始,依次将各结点插入到链表的前端。如下所示:
void CreateList(LinkList &L,int n){
L=new Lnode;
L->next=NULL; //先建立一个带头结点的单链表
for(int i=n;i>0;--i){
p=new Lnode;
cin>>p->data; //输入新结点数据域的值,C语言则使用scanf(&p->data)
p->next=L->next; //将新结点插入到表头
L->next=p;
}
}
三. 尾插法
首先从一个空表L开始,将结点逐个插入到链表的尾部,尾指针r指向链表的为结点。初始时,r同L一样,都指向头结点,每读入一个数据元素则申请一个新结点,将新结点插入到尾结点后,r指向新结点。如下所示:
void CreateList(LinkList &L,int n){
L=new Lnode;
L->next=NULL;
r=L; //尾指针r指向头结点
for(int i=0;i<n;i++){
p=new Lnode; //生成新结点,输入元素值
cin>>p->data;
r->next=p; //插入到表尾
r=p; //r指向新的尾结点
}
}