1.1 数据结构的分类与基本概念
本节我们将对数据结构的基本概念以及分类进行讲解,数据结构有很多种,但是主要也就是集中于几种类型,本节我们将进行逐一讲解。
什么是数据结构?
按照标准说法,数据结构指的是在计算机中存储和组织数据的一种方式,以便能够有效地访问和修改数据。
我们举例来说明一下,我们现在有一万本书需要放入图书馆,那么为了后续方便管理,我们一般会这样做:将这些书籍分类,之后放入不同的书架
这个分类的放入书架的方法,就叫做数据结构,我们的结构是:书架的每一层放不同分类的书籍。
同样的,我们在编程时也会遇到类似这样的情况,需要采用一种特定的结构方式来管理数据,比如说使用数组结构存储数据,这就是数据结构。
数据结构的重要性
从上面的例子我们可以看出,数据结构所解决的就是我们的效率问题,一方面是数据的存放效率,一方面是数据的查询效率。
比如在图书分类的需求中,我们使用了书籍分类、书架分层的方式。这样我们在处理一万本书的时候,按照我们的结构方法去操作就可以。
首先在存放的时候,我们按照分类去放置,那么我们的存放工作就不会那么乱,哪怕是几个人同时操作也没什么问题。在查找书籍的时候,根据分类去找到书架层级,再通过索引就可以快速找到对应的书籍。
数据结构的分类
数据结构按照数据之间的关系可以分为线性数据结构与非线性数据结构;按照存储方式可以分为顺序存储结构与链式存储结构。
线性数据结构: 数据以线性的方式排列,每个元素前后分别只有一个元素。例如:数组、链表、栈、队列。
非线性数据结构: 元素之间的关系比较复杂,不是单纯线性排列的。例如:树、图。
顺序存储结构: 元素按顺序存储在连续的内存空间中。例如:数组就是典型的顺序存储结构,支持高效的随机访问。
链式存储结构: 数据元素通过指针连接存储,元素可以分布在不同的内存位置。例如:链表是一种常见的链式存储结构,适合频繁插入和删除操作的场景。
我的GitHub:https://github.com/swxctx
书籍地址:https://gs.golang.website/
书籍代码:https://github.com/YouCanGolang/GoStructedCode