目录
在正式学习数据结构之前,我们先来了解三个入门级的概念!
入门级概念
什么是数据结构?
我们以往都是把数据存放在数组中,数组占用的是连续的内存。这种形式大部分都是没有问题的,90%的情况下数组都是能解决需求的,但是数据量特别大时,比如4亿个整型数据,你如何进行排序呢?我们不可能把这么多个数据放在内存中,也不会有这么多的内存。因此,我们就要想办法如何来排布这些数据才能放入内存中,以及如何排布才能让操作的效率最高。所以,数据的结构形式就是我们所说的数据结构。
什么是算法?算法和数据结构有什么联系?
我们提到数据结构时一般都会涉及到算法。之前我们学过冒泡排序就算是一种常规的排序算法。把这么多个数据排成什么的形式,排成什么样的形状,让它操作起来效率最高,这就会涉及到数据常用的几种处理算法。算法它跟我们用哪门语言是无关的,它其实是一种处理数据的“思想”,可以认为是解决问题的思路,有了解题思路,那你就可以用C语言,或者python,亦或是Java来实现。
为什么要学习数据结构?
只要你是做软件开发的,就必学数据结构!数据结构的作用就是让程序的运行效率提高。只要是做软件开发的,就必然要考虑程序如何写才能提高效率,因此数据结构是必不可少的一门课!这部分也是笔试题的重点。
温馨提示:这部分学完后最好要养成刷题的习惯,推荐“力扣leetcode”刷题网站,或者“牛客网”,这些网站上面有很多笔试题,可以用来练手。不要等到要找工作了再突击!因为编程能力还是要靠积累的。
备注:本专栏是嵌入式学习栏目,因此数据结构这部分的学习环境我们最好还是在虚拟机上的Linux终端学习,一切为了方便适应以后的工作环境!
现在开始进入正题......
数据结构常用的结构形式主要是以下这三种:
逻辑结构
线性结构(嵌入式领域的重点)
我们一般把能练成一条线的结构叫线性结构。
树形结构
是一种有很多分支的结构。
图形结构
这种结构的特点是任意两种结点都可以连在一起。
线性结构是我们嵌入式领域的重点,接下来我们首先具体来讲解线性结构的相关知识。
线性结构(嵌入式领域的重点)
线性表的特点
除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。
除最后一个元素外其他每一个元素有一个且仅有一个直接后继。
比如上面这张图,3的前驱是2,3的后继是4。1没有前驱,9没有后继。
存储结构
线性结构的存储形式常见有两种:
1、顺序结构
即顺序存储,可以理解成数组,数据是连续存放的。
2、链式存储
俗称链表,将零散的结点连起来,比如当我们找到第一个结点的时候,我们可以通过某种方式找到第二个结点,以此类推。虽然它们不是连续的,但是我们能通过某种方式把它们连起来,我们也把这种结构称为线性结构。
下一节开始我们先学习线性结构中两种存储形式中的其中一种:顺序结构!
QQ交流群:963138186
本篇就到这里,下篇继续!欢迎点击下方订阅本专栏↓↓↓