文章目录
你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名**"创始团队·嘉宾"** 和**"内容共创官"** ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。
🍊数据结构基础概念
简介
1968年美国克务特教授开创了数据结构的最初体系;数据结构指的是数据的逻辑结构和存储结构及其操作;数据结构是一门综合性的专业课程,是是一门介于数学、计算机硬件、计算机软件之间的一门核心课程。是设计和实现编译系统、操作系统、数据库系统及其他系统程序和大型应用程序的基础。
逻辑结构:表示数据运算之间的抽象关系(如邻接关系、从属关系等),按每个元素可能具有的直接前趋数和直接后继数将逻辑结构分为**"线性结构"和"非线性结构"**两大类。
存储结构:逻辑结构在计算机中的具体实现方法,分为顺序存储方法、链接存储方法等。
数据运算:对数据进行的操作,如插入、删除、查找、排序等
我们嵌入式学习的数据结构的一些基础知识和用法,不会深究,所以小伙伴们不用过于担心会很难。
示例
图书管理员中的数据,如下表所示:
编号 | 书名 | 作者 | 出版社 | 出版日期 | ... | |
---|---|---|---|---|---|---|
a1 | 001 | C语言 | 张三 | 科教 | 1998.7 | ... |
a2 | 002 | 数据结构 | 李四 | 国防 | 2002.2 | ... |
... | ... | ... | ... | ... | ... | ... |
用代码来表示这些信息的话,我们可以使用结构体来进行:
c
struct library
{
int id;
char book_name[];
char author_name[];
char publish_name[];
struct date
{
int year;
int month;
}dt;
};
struct library lb;
lb.id;//查询编号
lb.author_name[20];//查询作者名
lb.dt.year;//查询出版年份
上表(List)中每一行为一个数据元素(或记录),记为ai(1≤i≤n),元素之间呈现的是一种线性关系。此表可表示为:
list = (a1,a2,...,an)
对其进行操作(或运算)也不是加,减,乘,除等数学运算,而是诸如:
查询,插入,修改,删除(俗称增删改查),分类
线性结构和非线性结构
线性结构
本质:一个对一个(一对一)
非线性结构
树形结构:(一对多)
图形结构:(多对多)
前驱和后继
若将线性表 记为(a1,a2,a3,...,ai-1,ai,ai+1,...an),表中ai-1领先于ai,ai领先于ai+1,则称ai-1为ai的前驱,ai+1为ai的后继。