14 求链表的表长
Posted shanlu0000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了14 求链表的表长相关的知识,希望对你有一定的参考价值。
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 ", 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(" "); 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("初始化链表为: "); 63 link* phead = initByTailInsert(); //创建头指针,得到经过初始化后的头指针 64 showLink(phead); 65 printf("表的长度是:%d ", getLinkLength(phead)); 66 }
以上是关于14 求链表的表长的主要内容,如果未能解决你的问题,请参考以下文章