C语言实现静态链表的建立

在这么卷的时代,我觉得硬件工程师还是 要掌握基本的c语言编写能力,链表在学生阶段是一个比较难的知识点,可能有些同学上完一个大学都不会链表的编写,但是在未来工作中, 链表应用不管在嵌入式行业还是互联网行业都应用的非常基础,所以这个知识点是有必要全面掌握的。 下面将手把手教你,用开发软件写一个简单的静态链表程序。
关键词:静态链表;
01什么是链表
1.1、通俗易懂的解释链表是一种常见的重要的数据结构,它是动态地进行存储分配的一种结构,链表和数组比较,不用事先确定存储空间,而是根据需要开辟内存单元。 图1-1是最简单的一种链表(单向链表)的结构:
图1-1 单向链表结构图
图1-1中,第0个结点称为 头结点 ,它存放有第一个结点的首地址,它没有数据,只是一个 指针变量 。
以下的每个结点都分为两个域,一个是 数据域 ,存放各种实际的数据,如学号 num,姓名 name,性别 sex 和成绩score 等。
另一个域为 指针域 ,存放下一结点的首地址。 链表中的每一个结点都是同一种结构类型。
1.2、环境搭建用的visual studio 2019软件。
1.3、建立新项目(c语言)首先,打开软件,点击【创建新项目】,如图1-3所示:
图1-3 创建新项目
然后在新项目中点击【空项目】,如图1-4所示:
图1-4 点击空项目
接着,配置【项目名称】和【项目储存位置】,如图1-5所示:
图1-5 配置项目
最后,在【源文件】中添加【c文件】,如图1-6所示:
图1-6 添加c文件
02建立链表
2.1、建立静态链表建立链表所需要的头文件,代母如下:
#include//标准输入输出头文件
#include//包含了c、c++语言的最常用的系统函数
需要使用宏定义定义相关变量,代码如下:
#define len sizeof(struct student)//宏定义节点长度得命名
#define type struct student //宏定义结构体变量命名
需创建一个结构体,代码如下:
struct student //定义一个学生类型结构体,包括学号,分数
{
长数;
浮动分数;
struct student* next; //next是指针变量,指向结构体变量
};//指向结构体对象得指针变量既可以指向结构体变量,也可以指向结构体数组中得元素
需编写主函数,代码如下:
int main()
{
type* head,*p; //定义头指针
struct student a,b,c; //定义三个结构体变量
a.num = 101; a.score = 20; //分别对三个结点赋值
b.num = 102;b.分数 = 20;
c.num = 103;c.分数 = 20;
/*1、a.b则a为对象或者结构体
2、a->b则a为指针,->是成员提取,a->b是提取a中的成员b,a只能是指向类、结构、联合的指针; */
头 = &a;
a.next = &b;
b.下一个 = &c;
c.next = 空;
p = head; //把首地址给变量

{
printf(%ld %5.1f\\n,p->num,p->score);//输出每个结点信息
p = p->next; //使p指向下一个结点
} while (p != null); //直到指针域指向空值
返回 0;
}
运行程序,最终结果显示如图1-7所示:
图1-7 运行结果界面
图1-7最终将链表各个成员的数据逐个输出,表明建立的链表是正确的。
将第一个结点的起始地址赋值给头指针head,将第二个结点的起始地址赋值给第一个结点的next成员,将第二个结点的起始地址赋给第一个结点的next… 第三个结点的next赋值为null,这就形成了简单的链表。
但是这种是手动逐个建立的链表,简称【静态链表】,这种对于成员数目一定的情况比较适用,但是对于成员数目很多的情况,就不能使用这种方法了,比较繁琐,所以需要使用动态的方式添加链表,下期讲解动态链表!

BOE(京东方)携手民生银行打造智慧银行体验店
小米是国产又一骄傲? 小米推出的自研发芯片如何呢?
轻松应对考勤门禁管理难题,人脸识别终端来帮忙!
关于电动机节能的几点问题思考
改变嵌入设计格局的FPGA
C语言实现静态链表的建立
正交DDS信号至800至2500MHz频段的单边带上变频
OnePlus可能正在计划推出特别版的OnePlus Nord
威盛科技获授权使用Cadence Tensilica HiFi音频/语音DSP
苹果对自动驾驶的重视程度正在迅速提升
存储系统IOPS设计需解决的问题及服务功能
华微电子荣获2023小米全球核心供应商“合作共赢”奖
使用PlatformIO对Arduino UNO和STM32板进行编程
区块链技术的本质是什么
便携式场强测试仪参考环的低噪声设计
欧派家居:全自动化后将节省至少6成人力成本
可变电抗二极管
简单讲解一下如何选购一台好的回流焊机
与holo|one合作方案的特点
HDMI线有没有正反之分