任务描述

本小节需要你统计单链表中的节点数。

相关知识
根据上一关我们知道怎么创建单链表了,那么这一关让我们巩固一下单链表的知识。

编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

编写程序,从键盘输入一串整数以及整数的个数,以单链表形式存储起来,计算单链表中结点的个数,输出单链表的数据及结点的个数。

效果如下:
输入:
8
12367802

输出:
12367802
8

代码如下

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct node {int data;struct node *next;
}Node;Node * CreatList()//创建表头
{Node *phead = (Node *)malloc(sizeof(Node));phead->next=NULL;return phead;
}
Node * CreatNode(Node * phead)//创建节点
{int n;scanf("%d",&n);while(n--){Node * newPoint = (Node *)malloc(sizeof(Node));//创建一个新节点if(newPoint == 0){printf("内存分配错误\n");break;}scanf("%d", &newPoint->data);phead->next = newPoint;phead = newPoint;}phead -> next = NULL;return 0;
}
void ShowList(struct node * headNode)//打印链表
{struct node * pMove = headNode->next;while(pMove){printf("%d ",pMove->data);pMove=pMove->next;}}
int Length(Node * phead)//统计节点个数
{int i=0;struct node * pMove = phead->next;while(pMove){i++;pMove=pMove->next;}return i;//返回节点个数
}
int main(void)
{  Node *phead; phead = CreatList();  CreatNode(phead);ShowList(phead);printf("\n%d", Length(phead));  return 0;
}

C语言统计单链表中的节点数-实训相关推荐

  1. 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点).请将该节点从单链表中删除. 解答: 典型的"狸猫换太子", 若要删除该 ...

  2. 从无头单链表中删除节点 结构之法 4

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除. 分析与解答: 假设给定的指针为pCurrent,Node *pN ...

  3. 编程之美-从无头单链表中删除节点方法整理

    [试题描述] 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个),请将该节点从单链表中删除. 程序:

  4. 单链表删除指定节点c语言,在单链表删除指定节点之后的节点

    要删除在指定节点之后存在的节点,需要跳过所需数量的节点以到达节点,之后的节点将被删除. 需要跟踪这两个节点.如果在该节点之前存在的节点,则将删除该节点. 为此,使用了两个指针:ptr和ptr1. 使用 ...

  5. 从无头单链表中删除节点

    #include<iostream> using namespace std;struct Node{int data;Node* next; };void deleteNode(Node ...

  6. python链表删除尾部节点_python单链表中如何查找和删除节点?

    在之前的文章[python单链表中如何插入和输出节点?]中给大家介绍了单链表是什么,以及如何进行添加节点.输出所以节点.下面本篇文章给大家介绍如何查找和删除节点,希望对大家有所帮助. 如何从单链表中查 ...

  7. C语言实现单链表操作

    SLIST_H #ifndef __SLIST_H__ #define __SLIST_H__ #include<cstdio> #include<malloc.h> #inc ...

  8. 删除单链表中的重复节点(c语言版本)

    这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复 ...

  9. c语言单链表删除倒数第k个数,在单链表中删除倒数第k个节点

    实现方式很多,在这里只说两种实现方式.看不懂时候,大家可以画画图,对理解为什么很有帮助. 第一种方式: 1.首先判断K值和链表是否为空,如果k<=0,或链表为空,直接返回head: 2.满足上面 ...

最新文章

  1. 对比MySQL表数据内容方式汇总
  2. 每日程序C语言23-求一个正整数的位数并逆序打印
  3. Azure 物联网开发者体验 7 月更新:边缘计算开发工具,ARM64 设备开发,VS Code 容器化开发工具...
  4. 限制按钮点击_Android | 使用 AspectJ 限制按钮快速点击
  5. 计算机网络 --- 数据链路层CSMA/CA协议
  6. 为什么只能sudo进mysql_解决项目中MySQL数据库执行删除语句时间太长的问题
  7. Spring Boot 发送邮件时,出现 Mail server connection failed 异常问题
  8. vue axios ts 封装流文件下载方法
  9. mw150r 虚拟服务器,水星MW150R V1.3路由器web刷dd-wrt和741n以及刷回官方原版过程记录...
  10. 求助 电脑能正常上网,但开热点手机连上用不了。开的热点显示ipv6无网络访问权限。
  11. 个人建站用php,个人用不花钱 8款PHP建站软件推荐
  12. BandZIP无广告版(v6.25)安装及禁止联网设置
  13. 提高 Kubernetes 中的 GPU 利用率
  14. 半年总结——燕雀鸿鹄皆有志
  15. android震动代码分析
  16. 疫情影响下我们需要什么样的房子
  17. 嵌入式开发的那些年--aiku
  18. 关于类在3D世界或更加宽广维度中的视角1
  19. 2023苹果内核JAVA原生影视双端修改版源码+附安装教程
  20. 8月13日云栖精选夜读 | 阿里云首次发布数字化转型方法论,推动各行各业数字化转型...

热门文章

  1. 老年人为什么会驼背?
  2. form表单的属性方法
  3. 频繁跳槽涨工资?会影响征信的! | 畅言
  4. 淘宝是如何缩短首屏时间、降低服务器压力的?边缘计算告诉你答案!
  5. SQL模糊查询时特殊字符的处理方式总结
  6. 如何设置Chrome浏览器的分辩率测试插件
  7. JSON数据格式转TXT数据格式
  8. 宫廷心计服务器修复,宫廷心计2021版本
  9. 简单加密算法-MD5DEC
  10. c语言 unicode 知乎,qqzhihu