前言
🚀 数据结构是什么?我们为什么要学习数据结构?
首先回答数据结构是什么,按字面理解就是数据的结构,所谓的结构又是什么呢?像我们画的思维导图是树形结构,排队的一个长长的队伍,可以认为是一个线性结构;所以这样就很清晰明了了,我们即将要学习的数据结构就是学习数据的结构,而这个数据是存储在计算机中的,即是学习数据在计算机中的结构。
那为什么要学习数据在计算机中的结构呢?仍然来看下结构在我们的生活中有什么意义;对于一个队伍,一个这样的线形结构就可以让队伍不会乱,并且可以明确的区分先来后到,这样就可以非常方便的进行管理队伍而不会杂乱。所以我们学习数据结构,就是想学一些数据在计算机中的结构,从而来便于我们管理这些储存在计算机中的数据,对于不同的数据以及需求,我们就要为数据设计不同的数据结构存储在计算机中。
接下去我们就来看看有哪些结构吧,这里我们只需要简单了解一下这些结构,看看就好,我们后面会具体的学习每一种结构。
逻辑结构
逻辑结构可以分为线性结构和非线性结构,常见的线形结构有线性表(List)、堆栈(Stack)、队列(Queue)、数组(Array);常见的非线性结构有树(tree)、图(Graph)、集合(Set)。
(这里看一眼就好,了解有这些逻辑就可以,记不住不理解没关系,后面自然都会记住的会懂,come on! )
现在我们一起来探索一下这些所谓结构到底长什么样子吧!
🚀 线性表(List)、堆栈(Stack)、队列(Queue)
这三个同属于线性结构,线性结构在我们的生活中经常有,比如排队等吃饭,呈现一种先后关系,呈现一对一的关系。
🚀 树(Tree)
下面这张图就是对这篇博客内容使用树的结构所展现出来的内容,我们不难发现,当我们使用树形结构来归纳我们所学的知识的时候,我们的学到的知识结构就会变的非常清晰明了,从大内容不断细分为小内容,呈现一对多的关系。这样,我们就可以利用树形结构让数据变得清晰明了这个特点,在计算中存储数据的时候按着树形结构去存储,比如windwos系统的存储系统,就是按着树形结构管理的;如:C:/user/learing_data/DataStruct、C:/user/learing_data/OperatingSystem。
🚀 图(Graph)
下面这张图就是图结构,对于图结构,我们就可以表示一些数据之间多对多的联系,比如我看过有人绘制过某电影的人际关系图,也属于图这种结构,而存储在计算机中的数据,有时候数据和数据之间也会有某种联系,比如CSDN这个软件,有个博主我十分的喜欢,那我就会点击上关注,就如下图A、B、C、D这四个在CSDN上冲浪的家伙,可能就会互相的点击上关注,这是我们就需要计算机使用这种图的结构来存储A、B、C、D这四个家伙的关注列表状态信息了,一但D关注了C,那我们就需要再绘制一条线由D指向C了。
🚀 集合(Set)
还是以A、B、C、D这四个在CSDN上冲浪家伙举例,现在只想存储A、B、C、D这四个的用户名和密码,这时候显然就可以用图中结构来在计算机中存储,这四个人的用户名和密码之间不需要任何的联系。
物理结构(存储结构)
物理结构可以分为顺序存储,链式存储,索引存储和散列存储。
🚀 顺序存储:
数据按着顺序依次存放在计算机中存储的物理空间里。1、2、3、4个人在点餐系统里点餐,下单顺序的1、2、3、4,所以显然点餐顺序是一个线性结构,所以当客户在点餐系统里下单后,我们在计算机里存储这些下单数据的时候,就应该采用线性结构来表示这些数据;而实际的电脑里的存储器存放这些数据的时候也按着顺序依次放下单数据,这时候就叫做,线性结构在计算中采用顺序存储,也许有些迷糊,没关系,接着看下链式存储,对比一下这两个。
🚀 链式存储:
数据不按着顺序存放在计算机中存储的物理空间里。同样1、2、3、4个人在点餐系统里点餐,下单顺序的为1、2、3、4,显然点餐顺序仍然是一个线性结构,采用线性结构来表示这些数据;而实际的电脑里的存储器存放这些数据的时候采用链式存储方式存放放下单数据,下单数据实际在物理内存中的位置是随机的,数据之间的线性结构通过指针实现,1的下一个是2,由指针指向,2的下一个是3,3的下一个是4,这样我们就实现了线性结构在计算中采用链式存储。
所以对比上面的线性存储,我们不难发现其实所谓的逻辑结构是面向我们自己设计出来的结构,而物理结构是面向计算的存储器的。
🚀 索引存储和散列存储:
在之后学习到了再细说,现在只需要知道有这两种存储结构。
(同样的,这些名词可能很陌生,也不太理解,没关系,我们后面都会熟悉并理解起来的,加油!加油!)
总结
逻辑结构面向数据之间的抽象结构,物理结构面向计算机的存储器,我们想要保存数据之间的某种关系结构,这种关系结构也许是线性结构又或者是非线性结构,这是数据本身之间就具有的抽象的逻辑结构;现在想把这些数据以及这些数据之间的结构存储到计算机中,这些数据实际被放的物理位置所表现出来的结构是物理结构(又叫存储结构)。