10 尾插入法插入数据实现三(创建头节点的方式)

 1 /*尾插入实现方法3,创建头节点的方式*/
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 
 5 typedef struct Link {
 6     int data;
 7     struct Link* next;
 8 }link;
 9 
10 //全局声明一个头结点
11 link* head_node = NULL;
12 
13 
14 //初始化链表
15 void initLink() {
16     head_node = (link*)malloc(sizeof(link));
17     head_node->next = NULL;
18 }
19 //尾插入
20 void* TailInsert(int num){
21     initLink();
22     link* new_node = (link*)malloc(sizeof(link));
23     new_node->data = num;
24     new_node->next = NULL;
25     head_node->next = new_node;
26     printf("%d\n", head_node->next->data);
27 }
28 
29 
30 void main() {
31     int num = 0;
32     printf("请输入一个整数:");
33     scanf("%d", &num);
34     printf("尾插入后的链表中的数据是:\n");
35     TailInsert(num);
36 }

 如果想要尾插入多个数据,可以使用 一个 for 循环,同时可以定义一个 遍历链表并打印所有数据的 函数,调用这个函数可以打印链表中的全部数据

 1 /*尾插入实现方法3,创建头节点的方式*/
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 
 5 typedef struct Link {
 6     int data;
 7     struct Link* next;
 8 }link;
 9 
10 //全局声明一个头结点
11 link* head_node = NULL;
12 
13 
14 //初始化链表
15 void initLink() {
16     head_node = (link*)malloc(sizeof(link));
17     head_node->next = NULL;
18 }
19 //尾插入
20 link* TailInsert(int num){
21     initLink();
22     link* new_node = (link*)malloc(sizeof(link));
23     new_node->data = num;
24     new_node->next = NULL;
25     head_node->next = new_node;
26     //printf("%d\n", head_node->next->data);
27     return head_node;
28 }
29 
30 void showLink(link* headNode) {
31     while (headNode->next != NULL) {
32         printf("%d  ", headNode->next->data);
33         headNode = headNode->next;
34     }
35 }
36 
37 void main() {
38     printf("尾插入多个数据后的链表中的数据是:\n");
39     for (int i = 0; i < 5; i++) {
40         //TailInsert(i);
41         showLink(TailInsert(i));
42         
43     }
44 }

猜你喜欢

转载自www.cnblogs.com/shanlu0000/p/12500951.html