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

news2024/11/14 18:02:28

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.coloradmin.cn/o/2127278.html

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

相关文章

网格参数的应用和数学基础

引言 对于任意两个拓扑结构相似的表面&#xff0c;可以计算它们之间的一一对应映射。如果其中一个表面由三角形网格表示&#xff0c;那么计算这种映射的问题被称为网格参数化。映射到的表面通常被称为参数域。表面网格与各种域之间的参数化在计算机图形学和几何处理中有广泛的应…

移动WEB开发(第二天)_flex布局

移动WEB开发&#xff08;第二天&#xff09;_flex布局 移动web开发——flex布局1.0传统布局和flex布局对比1.1传统布局1.2 flex布局1.3 建议 2.0 flex布局原理3.0 父项常见属性3.1 flex-direction设置主轴的方向3.2 justify-content 设置主轴上的子元素排列方式3.3 flex-wrap设…

9月美联储决策前哨战——美国CPI数据来袭

随着本周关键CPI数据的即将发布&#xff0c;市场正翘首以待&#xff0c;这将是美联储在9月17日至18日议息会议前获取的最后一块重要经济拼图。鉴于美联储官员已进入传统的政策静默期&#xff0c;8月份的CPI报告无疑将成为交易员们评估未来货币政策走向的重要标尺。 欧洲央行降…

python列表判断是否为空的三种方式

#列表是否为空判断 a[]一&#xff1a; if a:print(not null) else:print(null)二&#xff1a; b len(a) if b 0:print(null) else:print(not null)三&#xff1a; if not a:print(null) else:print(not null)运行结果&#xff1a;

Day9 | Java框架 | SpringBoot

Day9 | Java框架 | SpringBoot SpringBoot简介入门程序概述起步依赖 基础配置配置文件格式&#xff1a;3种yaml语法规则yaml数据读取三种格式 多环境启动配置文件参数命令行参数多环境开发控制&#xff1a;Maven & SpringBoot 多环境兼容 配置文件分类&#xff1a;4种 整合…

Qt+FFmpeg开发视频播放器笔记(三):音视频流解析封装

音频解析 音频解码是指将压缩的音频数据转换为可以再生的PCM(脉冲编码调制)数据的过程。 FFmpeg音频解码的基本步骤如下: 初始化FFmpeg解码器(4.0版本后可省略): 调用av_register_all()初始化编解码器。 调用avcodec_register_all()注册所有编解码器。 打开输入的音频流:…

k8s以及prometheus

#生成控制器文件并建立控制器 [rootk8s-master ~]# kubectl create deployment bwmis --image timinglee/myapp:v1 --replicas 2 --dry-runclient -o yaml > bwmis.yaml [rootk8s-master ~]# kubectl expose deployment bwmis --port 80 --target-port 80 --dry-runclient…

【深海王国】初中生也能画的电路板?目录合集

Hi٩(๑ ^ o ^ ๑)۶, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦 (o゜▽゜)o☆ 今天大都督为大家带来系列文章《初中生也能画的电路板》&#xff0c;帮你一周内快速入门PCB设计&#xff0c;手把手教你从元器件库添加、电路原理图绘制、…

如何解决在idea中的hadoop日志错误

在idea中操作hadoop的时候&#xff0c;每次运行代码都会发现有个日志错误&#xff0c;虽然不影响程序运行&#xff0c;但是无法打印日志。这是缺少依赖&#xff0c;和windows上缺少log4j的文件 解决方案&#xff1a; 1、导入slf4j依赖 2、导入hadoop中的log4j文件 1、从hado…

校园安全无小事,EasyCVR视频综合管理平台助力智慧校园视频监控系统全面升级

随着信息技术的飞速发展&#xff0c;智慧校园作为教育信息化的重要载体&#xff0c;正逐步成为提升校园安全管理、优化教育资源配置、增强师生互动体验的关键手段。其中&#xff0c;高效、智能的视频监控系统作为智慧校园不可或缺的一部分&#xff0c;扮演着至关重要的角色。TS…

Benvista PhotoZoom Pro / Classic 9.0.2 Win/mac + Plug-in中文破解版

对数码照片放大的质量不满意&#xff1f; 使用 BenVista PhotoZoom Classic9 调整图像大小&#xff0c;并通过我们屡获殊荣的独特 S-Spline 技术获得出色的效果&#xff01; 更高质量&#xff1a;PhotoZoom Classic9 专门用于在保持质量的同时放大照片。 该软件配备了 BenVista…

C++核心编程和桌面应用开发 第一天

目录 1.C的编程方式 2.双冒号::运算符 3.命名空间 3.1作用 3.2命名空间内的东西 3.3注意事项 4.using的用法 4.1using的声明 4.2using编译指令 5.C相较于C的增强 5.1全局变量检测增强 5.2函数检测增强 5.3类型转换检测增强 5.4结构体增强 5.5三目运算符增强 5.…

如何高效阅读论文呢???

论文题目《多模态数据融合研究综述》&#xff0c;介绍了多模态数据融合技术以及对齐方法&#xff0c;最后是展望以及未来的发展。 泛读这篇论文不在状态&#xff0c;求助前辈们该如何高效的阅读论文呢&#xff1f;&#xff08;我是刚入学的研一学生&#xff0c;对于读论文这块…

【H2O2|全栈】关于CSS(2)CSS基础(二)

目录 CSS基础知识 前言 准备工作 选择器的组合 盒模型 示例网页代码 后代选择器 亲代选择器 相邻兄弟选择器 后续兄弟选择器 多个元素选择器 通配符选择器 优先级 其他应用 伪类 锚链接的属性 列表的属性 list-style-type list-style-position list-style…

1.任务的创建与状态

1.什么叫现场? 就是程序暂停瞬间所有寄存器的值 2.如何"保存现场"? 就是把"所有寄存器"保存进哪里? 保存进"内存",这块内存被称为栈 3.栈来自哪里? a.在FreeRTOS里定义了一个大数组 b.FreeRTOS里的malloc函数,从这个大数组里分配内存 c.创…

MySQL一:在Ubuntu下安装MySQL数据库

目录 前言 1.查看操作系统版本 2.添加MySQLAPT源 2.1下载发布包 ​编辑 2.2安装发布包 3.安装MySQL 4.查看MySQL状态 5.开启自启动 ​编辑 6.登录MySQL 前言 操作系统版本为Ubuntu 22.04.6LTS 1.查看操作系统版本 lsb_release -a 2.添加MySQLAPT源 2.1下载发布包 M…

【深度学习】神经网络-怎么分清DNN、CNN、RNN?

怎么分清DNN、CNN、RNN&#xff1f; 最“大”的概念是人工神经网络&#xff08;Artificial Neural Network, ANN&#xff09;&#xff0c;它是较为广泛的术语&#xff0c;通常指的是一类模拟生物神经网络的数学模型&#xff0c;其中包括神经元、权重和连接。在这个术语下&#…

~数据分析知识分享~

近来有一些小伙伴咨询数据分析相关的一些知识内容 我收集了一些相关信息 在这里简单做一些分享和介绍&#xff0c;后续有相关的内容我也会持续的更新&#xff01;感谢大家的支持与陪伴&#xff01; 拆解问题一个原则四类方法 数据分析工程技术 数据分析四种类型 六个方向 分析…

[000-002-01].第03节:Linux系统下Oracle的安装与使用

2.1.Docker安装Oracle 在CentOS7中使用Docker安装Oracle&#xff1a; 1.安装Docker,详细请参考&#xff1a;https://blog.csdn.net/weixin_43783284/article/details/1211403682.拉取镜像&#xff1a; docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g3.下载…

Zookeeper下载与安装教程(国产化生产环境无联网服务器部署实操)

请放心观看&#xff0c;已在正式环境部署验证&#xff0c;流程无问题&#xff01; 此外&#xff0c;建议更换默认的2181端口&#xff0c;避免后期服务器漏扫麻烦&#xff0c;不少漏扫软件是扫描到默认端口后给出漏洞报错&#xff01;我所用服务器环境是麒麟银河aarch64系统&am…