建立单链表有两种方法,
这里采用头插法。
尾插法含义:
该方法是从一个空表开始,读取数组的元素,生成新节点,将读取的数据放到存放在新节点的数据域中,然后将该节点插入到链表的表头上,直到结束为止。
由于:头插法会让顺序与数组原顺序相反,所以这里要定义一个尾指针r 才可让顺序不变。
思路:(尾插法)
1.先建立一个头结点,r始终指向尾结点,开始时指向头结点
2.通过循环读取数组的元素,生成新节点
其中,第一,数据域赋值 第二,指针域更换
意思为:将新生成的结点插入头结点后
需要定义: 一个指针s指向新生成的结点,一个指针r指向尾结点。定义循环变量i
3,最后将尾结点置为空 r->next = null;
C代码实现:
void CreateListF(Linklist * L,int a[], int n){
Linklist * s,*r; int i;
L = (Linklist)malloc(sizeof(Linklist)); //建立头结点
r = L; //r始终指向尾结点,开始时指向头结点
for(int i = 0; i < n; i++){
s = (Linklist)malloc(sizeof(Linklist));
s->data = a[i];
r->next = s;
r = s;
}
r->next = null; //尾结点置为空
}