11 头插入法创建链表)

1,创建尾指针的方式,让尾指针不断往前移动

 1 /*头插入创建单链表*/
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 
 6 typedef struct Link {
 7     int data;
 8     struct Link* next;
 9 }link;
10 
11 
12 //头插入的方式初始化链表
13 link* initByHeadInsert() {
14     link* ptail =NULL; //创建尾指针
15 
16     //先初始话最后一个结点
17     link* last_node = (link*)malloc(sizeof(link));
18     last_node->data = 1;
19     last_node->next = NULL;
20     ptail = last_node;  //让尾指针指向最后一个结点
21 
22     //头插入赋值
23     for (int i = 2; i < 5; i++) {
24         link* new_node = (link*)malloc(sizeof(link)); //申请一个新节点
25         new_node->data = i; //给新节点赋初值
26         new_node->next = last_node; //新节点的指针域是最后一个结点
27         last_node=new_node; //新节点成为最后一个结点
28 
29         ptail = new_node; //尾指针指向这个新节点,不断往前移动
30 
31         //printf("尾指针指向的值是:%d\n", ptail->data);//2 3 4
32         
33     }
34 
35     return ptail; //将指向最后一个结点的尾指针返回
36 }
37 
38 
39 //遍历链表
40 void showLink(link* ptail) {
41     link* tmp = ptail;
42     while (tmp!=NULL) {
43         printf("%d ", tmp->data);
44         tmp = tmp->next;
45     }
46 }
47 
48 void main() {
49     printf("头插入赋值的初始化链表为:\n");
50     link* ptail = initByHeadInsert();; //创建尾指针,获取初始化后的尾指针
51     showLink(ptail);
52     
53 }

猜你喜欢

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