首页 > 其他 > 详细

14 求链表的表长

时间:2020-03-11 01:28:30      阅读:55      评论:0      收藏:0      [点我收藏+]
 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 求链表的表长

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!