你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面有关数据结构方面的内容。
🍊单向链表概述
线性表的链式存储结构,我们叫做链表。 将线性表L=(a0,a1,……,an-1)中各元素分布在存储器的不同存储块,称为结点,通过地址或指针建立它们之间的联系,所得到的存储绪构为链表结构。
下图就是链表的结点:
数据域和指针域
数据域:结点的data域存放数据元素a0,
指针域:next域是一个指针,指向a0的直接后继a1所在的结点。
头结点和尾结点
头结点:链表中第一个结点我们叫做头结点,数据域默认不使用,只是用指针域。
尾结点:链表中最后一个结点我们叫做尾结点,尾结点的指针域为NULL。
在后面我们学习插入,删除等操作的时候,我们可以发现拥有头结点的链表是很容易在头部插入新的信息的。
数据类型设计
typedef int datatype_t;//用户自定义数据类型
typedef struct node
{
datatype_t data; //数据域保存的有效数据
struct node *next;//保存下一个结点的地址
]linknode_t;
解释为什么要用struct node *来定义next.
next它是一个指针,那为什么这个指针时这个类型呢?因为这个指针指向的变量仍然是有data,有next两个成员,那么这个有data,有next的两个成员的类型是什么类型呢?就是这个struct Lnode 这种类型,所以这两个地方一模一样,只不过这里加了个*,表示是指向这个结点的指针。