嵌入式全栈开发学习笔记---数据结构概述

目录

入门级概念

什么是数据结构?

什么是算法?算法和数据结构有什么联系?

为什么要学习数据结构?

逻辑结构

线性结构(嵌入式领域的重点)

树形结构

图形结构

线性结构(嵌入式领域的重点)

线性表的特点

存储结构

1、顺序结构

2、链式存储


在正式学习数据结构之前,我们先来了解三个入门级的概念!

入门级概念

什么是数据结构?

我们以往都是把数据存放在数组中,数组占用的是连续的内存。这种形式大部分都是没有问题的,90%的情况下数组都是能解决需求的,但是数据量特别大时,比如4亿个整型数据,你如何进行排序呢?我们不可能把这么多个数据放在内存中,也不会有这么多的内存。因此,我们就要想办法如何来排布这些数据才能放入内存中,以及如何排布才能让操作的效率最高。所以,数据的结构形式就是我们所说的数据结构。

什么是算法?算法和数据结构有什么联系?

我们提到数据结构时一般都会涉及到算法。之前我们学过冒泡排序就算是一种常规的排序算法。把这么多个数据排成什么的形式,排成什么样的形状,让它操作起来效率最高,这就会涉及到数据常用的几种处理算法。算法它跟我们用哪门语言是无关的,它其实是一种处理数据的“思想”,可以认为是解决问题的思路,有了解题思路,那你就可以用C语言,或者python,亦或是Java来实现。

为什么要学习数据结构?

只要你是做软件开发的,就必学数据结构!数据结构的作用就是让程序的运行效率提高。只要是做软件开发的,就必然要考虑程序如何写才能提高效率,因此数据结构是必不可少的一门课!这部分也是笔试题的重点。

温馨提示:这部分学完后最好要养成刷题的习惯,推荐“力扣leetcode”刷题网站,或者“牛客网”,这些网站上面有很多笔试题,可以用来练手。不要等到要找工作了再突击!因为编程能力还是要靠积累的。

备注:本专栏是嵌入式学习栏目,因此数据结构这部分的学习环境我们最好还是在虚拟机上的Linux终端学习,一切为了方便适应以后的工作环境!

现在开始进入正题......

数据结构常用的结构形式主要是以下这三种:

逻辑结构

线性结构(嵌入式领域的重点)

我们一般把能练成一条线的结构叫线性结构。

 

树形结构

是一种有很多分支的结构。

 

图形结构

这种结构的特点是任意两种结点都可以连在一起。

线性结构是我们嵌入式领域的重点,接下来我们首先具体来讲解线性结构的相关知识。

线性结构(嵌入式领域的重点)

线性表的特点

除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。

除最后一个元素外其他每一个元素有一个且仅有一个直接后继。

比如上面这张图,3的前驱是2,3的后继是4。1没有前驱,9没有后继。

存储结构

线性结构的存储形式常见有两种:

1、顺序结构

即顺序存储,可以理解成数组,数据是连续存放的。

2、链式存储

俗称链表,将零散的结点连起来,比如当我们找到第一个结点的时候,我们可以通过某种方式找到第二个结点,以此类推。虽然它们不是连续的,但是我们能通过某种方式把它们连起来,我们也把这种结构称为线性结构。

下一节开始我们先学习线性结构中两种存储形式中的其中一种:顺序结构!

QQ交流群:963138186

本篇就到这里,下篇继续!欢迎点击下方订阅本专栏↓↓↓

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vera工程师养成记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值