多文件编程实现链表创建,插入,输出(上)

linklist.c

#include "linklist.h"
//创建空的链表,为头结点在堆区分配空间
linklist_t *creat_empty_linklist()
{linklist_t *head = NULL;head = (linklist_t *) malloc(sizeof(linknode_t));if(NULL == head){printf("malloc is fail!\n");return NULL;}memset(head,0,sizeof(linklist_t));//head->next = NULL;//head->data = 0;return head;
}
//头插法:每次都在头结点后插入数据
//特点:插入的顺序和输出的顺序是相反的void insert_head_linklist(linklist_t *head,datatype_t data)
{//为结点在堆区申请空间linklist_t *temp = (linklist_t *)malloc(sizeof(linknode_t));if(NULL == temp){printf("malloc is fail!\n");return ;}//插入数据temp->data = data;//连接结点temp->next = head->next;head->next = temp;return ;
}//输出链表的内容
void print_data_linklist(linknode_t *head)
{linklist_t *p = head;while(p->next != NULL){printf("%d ",p->next->data);p = p->next;}return ;
}

linklist.h

#include <stdio.h>
#include <string.h>
#include <stdlib.h>typedef int dartatype_t;typedef struct node
{datatype_t data;//数据域保存有效数据struct node *next;//指针域保存下一个结点的地址
}linknode_t;extern void print_data_linklist(linknode_t *head);
extern void insert_head_linklist(linklist_t *head,datatype_t data);
extern linklist_t *creat_empty_linklist();#endif

main.c

#include "linklist.h"int main()
{linklist_t *head = NULL;datatype_t data;int n;head = creat_empty_linklist();printf("please input you want insert data number: ");scanf("%d",&n);printf("please input %d data : ",n);for(i = 0;i < n;i++){scanf("%d",&data);insert_head_list(head,data);}print_data_linklist(head);retutn 0;
}

  运行上面的所有文件可以有下面结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53696.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目小结二()

一.个人信息的界面 这里可以进行用户信息的修改&#xff0c;并渲染数据上去 二.这两天&#xff0c;出现的问题&#xff1a; 1.mybatis中 字段取别名 &#xff08;还没验证&#xff0c;是否正确&#xff09; 问题描述&#xff1a;由于实体类中的变量名&#xff0c;与数据库中…

CTF—杂项题目

1.ctfshow-Misc入门-misc17 1 用010editer打开图片后没有直接搜到ctf&#xff1b; 2 用binwalk分析文件发现有一个bzip2的隐藏文件并将其分离&#xff1b; 3 得到一个压缩文件D86.bz2&#xff1b; 4 但使用解压命令进行解压时&#xff0c;显示文件受损&#xff1b; 5 参考别人…

SpringBoot学习(8)RabbitMQ详解

RabbitMQ 即一个消息队列&#xff0c;主要是用来实现应用程序的异步和解耦&#xff0c;同时也能起到消息缓冲&#xff0c;消息分发的作用。 消息中间件最主要的作用是解耦&#xff0c;中间件最标准的用法是生产者生产消息传送到队列&#xff0c;消费者从队列中拿取消息并处理&…

Docker高级管理--Compose容器编排与私有仓库(Docker技术集群与应用)

本文介绍了Docker的三大工具&#xff1a;Docker Machine用于创建和管理Docker主机&#xff0c;Docker Compose用于单引擎模式下的多容器应用部署和管理&#xff0c;而Docker Swarm则是一个集群管理工具&#xff0c;提供微服务应用编排功能。Docker Machine支持在不同环境配置Do…

技术成神之路:设计模式(十三)访问者模式

介绍 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许你在不改变对象结构的前提下&#xff0c;定义作用于这些对象的新操作。这种模式通过将操作逻辑从对象结构中抽离出来&#xff0c;使得新的操作可以无缝地添加到现有对象中。 1.定…

PDF转Excel小达人养成记

在现代职场&#xff0c;数据管理与格式转换可谓是日常任务的重头戏&#xff1b;有时我们手头有一份PDF文件&#xff0c;但需要将其中的数据整理成Excel表格&#xff0c;这该如何是好&#xff1f;别急&#xff0c;今天我就来给大家介绍几款好用的PDF转Excel工具&#xff0c;以及…

【CanMV K230 AI视觉】 人体关键点检测

【CanMV K230 AI视觉】 人体关键点检测 人体关键点检测 动态测试效果可以去下面网站自己看。 B站视频链接&#xff1a;已做成合集 抖音链接&#xff1a;已做成合集 人体关键点检测 人体关键点检测是指标注出人体关节等关键信息&#xff0c;分析人体姿态、运动轨迹、动作角度等…

【python】OpenCV—Age and Gender Classification

文章目录 1、任务描述2、网络结构2.1 人脸检测2.2 性别分类2.3 年龄分类 3、代码实现4、结果展示5、参考 1、任务描述 性别分类和年龄分类预测 2、网络结构 2.1 人脸检测 输出最高的 200 个 RoI&#xff0c;每个 RoI 7 个值&#xff0c;&#xff08;xx&#xff0c;xx&#x…

chapter14-集合——(List-HashSet)——day18

目录 519-HashSet全面说明 520-数组链表模拟 521-HashSet扩容机制 重要 522-HashSet源码解读1 526-HashSet最佳实践 527-hashSet思考题 519-HashSet全面说明 题一、 两个tom都可以添加成功是因为这是两个对象 看源码做分析&#xff1a;不是直接指向常量池的吗&#xff1f;…

【Python篇】matplotlib超详细教程-由入门到精通(下篇)

文章目录 前言第六部分&#xff1a;保存与导出图表6.1 保存为图片文件示例&#xff1a;保存图表为 PNG 文件解释&#xff1a;关键点&#xff1a; 6.2 保存为高分辨率图片示例&#xff1a;保存为高分辨率图片解释&#xff1a; 6.3 保存为不同文件格式示例&#xff1a;保存为不同…

程序员问题社区

CSDN有问必答 – 程序员问题社区 ★★★★★ 点击我进入程序员问题社区 ★★★★★

OrionX GPU算力池助力AI OCR场景应用

01 AI OCR的历史及概念 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是指采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方法将形状翻译成计算机文…

ARM 工业计算机搭载 FUXA 组态软件:开启智能制造新时代

工业自动化已经成为提高生产效率、保证产品质量以及提升企业竞争力的关键因素。而在工业自动化的舞台上&#xff0c;FUXA 组态软件与 ARM 工业计算机的组合正发挥着越来越重要的作用&#xff0c;以其高效稳定、数据可视化、实时监控等优势&#xff0c;在复杂场景应用中展现出卓…

JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级

这里写目录标题 JavaScript高级第03天1.函数的定义和调用1.1函数的定义方式1.2函数的调用 2.this2.1函数内部的this指向2.2改变函数内部 this 指向2.2.1 call方法2.2.2 apply方法2.2.3 bind方法2.2.4 call、apply、bind三者的异同 3.严格模式3.1什么是严格模式3.2开启严格模式3…

opencv图像透视处理

引言 在图像处理与计算机视觉领域&#xff0c;透视变换&#xff08;Perspective Transformation&#xff09;是一种重要的图像校正技术&#xff0c;它允许我们根据图像中已知的四个点&#xff08;通常是矩形的四个角&#xff09;和目标位置的四个点&#xff0c;将图像从一个视…

【鸿蒙开发从0到1 day09】

鸿蒙开发基础-ArkUI基本布局 一 .设计资源-图标库1.阿里矢量图图标库2.HarmonyOS图标库 二.布局属性1.内边距2.外边距3.边框线4.边框圆角 三.背景属性1.背景颜色2.背景图片(1)背景图的缩放(2)背景图的显示位置 四.颜色渐变1.线性渐变2.径向渐变 五.阴影六.可选择链操作符(?)七…

如何更改磁盘卷标名称?

磁盘卷标&#xff08;Volume Label&#xff09;是用来标识和管理磁盘驱动器的名称&#xff0c;通常在文件资源管理器中显示。卷标有助于用户快速识别和区分不同的磁盘或分区。 为什么要更改磁盘卷标名称&#xff1f; 磁盘卷标作为磁盘的名字&#xff0c;可以帮助用户更容易地识…

通过C# 裁剪PDF页面

在处理PDF文档时&#xff0c;有时需要精确地裁剪页面以适应特定需求&#xff0c;比如去除广告、背景信息或者仅仅是为了简化文档内容。 本文将指导如何使用免费.NET控件通过C#实现裁剪PDF页面。 免费库 Free Spire.PDF for .NET 支持在 .NET (C#, VB.NET, ASP.NET, .NET Core)…

【特点】浅谈大模型的特点

在人工智能(AI)的发展历程中&#xff0c;大模型无疑是一个重要的里程碑。大模型是指利用海量数据&#xff0c;通过先进的算法和技术&#xff0c;训练得到的具有强大预测和决策能力的模型&#xff0c;这类模型具备了强大的语言理解和生成能力&#xff0c;能够完成各种复杂的自然…

搬运5款冷门但值得下载的PC软件

​ 分享5款冷门但值得下载的Windows软件&#xff0c;个个都很实用&#xff0c;你可能一个都没见过&#xff0c;但是我觉得你用过之后可能就再也离不开了。 1. 图片管理——Picasa ​ Picasa 是一款由谷歌开发的图片管理和编辑软件&#xff0c;能够帮助用户轻松地组织、编辑和…