ch2_线性表_链表及其初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdlib.h>
//链表的结构体定义
typedef struct Link{
int elem;
struct Link *next;
}link;

//链表初始化函数
link *initLink(){
//先搞个头结点粗来
link *p=(link*)malloc(sizeof(link));
//再弄个工作指针,初始指向头结点p
link *temp=p;
for(int i=1;i<5;++i){
//想初始化,得有原料,那就是一个一个的节点,现在还没有节点,那先搞一个粗来
link *a=(link*)malloc(sizeof(link));
//光有空壳不够,该赋值了(对link结构体中的elem赋值)
a->elem=i;
//有了原料节点,就用一根绳子把它们串起来(对link结构体中的next指针赋地址值)
temp->next=a;//串起来啦
temp=a;//工作指针temp后移,准备迎接下一个节点的到来
}
printf("\n");//为了颜值和正义而生
//串完之后,原来的头结点p身后就有了一大堆节点
return p;//return试试看
}

//打印初始化好的链表元素函数
void display(link *p){
link *x=p;//x初始指向头结点
while(x->next){
x=x->next;
printf("%d",x->elem);
}
printf("\n");
}

void main(){
//初始化链表(1,2,3,4)
printf("初始化链表为:\n");
link *p=initLink();
display(p);
}
凡希 wechat
喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号
呐,请我吃辣条