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 }
原文:https://www.cnblogs.com/shanlu0000/p/12500951.html