码迷,mamicode.com
首页 > 其他好文 > 详细

14 求链表的表长

时间:2020-03-11 01:05:49      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:void   bsp   get   data   while   malloc   head   color   typedef   

 1 /*求表长*/
 2 
 3 
 4 #include<stdio.h>
 5 #include<stdlib.h>
 6 
 7 //链表中节点的结构
 8 typedef struct Link {
 9     int  data;
10     struct Link* next;
11 }link;
12 
13 //链表初始化
14 link* initByTailInsert() {
15     link* phead = NULL;//创建头指针
16     link* first_node = (link*)malloc(sizeof(link));//创建第一个节点
17     //第一个结点先初始化
18     first_node->data = 1;
19     first_node->next = NULL;
20     phead = first_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 = NULL;
27         first_node->next = new_node;  //第一个结点的指针域指向这个新申请的结点
28         first_node = new_node;  //第一个结点后移
29     }
30 
31     printf("头指针指向的值是:%d\n", phead->data);//1
32     return phead;  //将指向第一个结点的头指针返回
33 }
34 
35 
36 
37 void showLink(link* phead) {
38     link* tmp = phead;//将头指针赋给tmp,tmp也是一个头指针
39     //只要tmp指针指向的结点的next不是Null,就执行输出语句。
40     while (tmp != NULL) {
41         printf("%d ", tmp->data);
42         tmp = tmp->next;
43     }
44     printf("\n");
45 }
46 
47 
48 //求链表的表长
49 int getLinkLength(link* phead) {
50     link* tmp = phead;
51     int len = 0;
52     while (tmp != NULL) {
53         len++;
54         tmp = tmp->next;
55     }
56     return len;
57 }
58 
59 
60 void main() {
61     //初始化链表(1,2,3,4)
62     printf("初始化链表为:\n");
63     link* phead = initByTailInsert(); //创建头指针,得到经过初始化后的头指针
64     showLink(phead);
65     printf("表的长度是:%d\n", getLinkLength(phead));
66 }

技术图片

 

14 求链表的表长

标签:void   bsp   get   data   while   malloc   head   color   typedef   

原文地址:https://www.cnblogs.com/shanlu0000/p/12459811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!