00:00
好,我们来看一下,那既然说到数据结构是我们算法的基础,那么我们来看数据结构,它主要是分几大类,数据结构呢?包括两个部分,一个部分叫线性结构,一个部分叫非线性结构。那么我们先来说线性结构,线性结构呢是最常用的数据结构。对,它是最常用的数据口,其特点是数据元素之间存在一对一的关系。你比如说数组对吧,比如说我们学过的数组A0。等于,比如说等于30,你看当下边等于零的时候呢,它就唯一对应一个值,这叫一对一,叫线性关系第二个。线性结构呢,有两种不同的存储方式,哪两种注意听讲,第一种呢,我们叫做顺序存储方式,还有一种叫链式存储方式。那么我要讲清楚什么叫顺顺序存储方式啊,所谓顺序存储方式即为顺序表,那么顺序表中的存储元素是连续的,指的是它的地址,就在在他那个内存分配的时候,这个地址是连续的,比如说数组。
01:12
它就是顺序表,比如说它的存储元素是连续的,还有一种是链式存储。这个呢,我们叫链表,就是你后面同学们要带大家学的,像单链表。双向链表。这种我们就称之为链式存储,链式存储呢,它的存储元素不一定是连续的,就说有可能是连续,也有可能不连续,那么它们之间这个节点的关系呢,后面我会想讲啊,就说他们每一个数据相当于一个节点,它是靠其中有一个指针或者地址跟它连起来的,那也就是说这个数据或者叫这个节点跟这个节点他们。的地址不一定是连续的。这样呢,链表就有个好处,它可以充分的利用我们碎片内存,就它的例子可以不连续,明白我意思吧,那么线性结构常见的有哪些呢?有哪些呢?线性结构常见的数组。
02:09
队列链表站。这四个是我们线性结构用的最多的,当然数组里面又分很多数组,比如像我们的系数数组。对吧,像这个队列里面呢,我们就有单向队列,环形队列,链表呢,有单链表环形链表,双向链表站,那这个就也有站呢,我们可以用数组实现,也可以用链表实现。但它有不同的方式,后面呢我们会详细介绍,还有一种呢,就是非线性结构。所谓非线性结构呢,它可能就不是一对一的关系了,我举个例子,比如说这有个节点。这个节点下面呢,它可以有左节点,也可以有右节点,甚至它下面还有多路,还有第三个节点都有可能叫多路查询数。对不对,所以说非线性结构呢,它至少已经不是一对一的关系了。
03:05
不是一对一的关系,后面我们会详细介绍啊,大家这块听得不太明白,不要不要紧,不要紧,那么非线性结构呢,常见的有这个二维数组,多维数组,广义表数结构图结构。那么数组这一块相对来说还是比较简单的,到时间我们讲系数组,系数数组大家一看就明白了,那么像这个数结构和图结构是我们非线性结构里面用的最多的,那由这个树结构和图结构呢,就引申出来很多很多算法。就是说我们的很多算法呢,是跟这个数结构图结构相关联的,明白意思吧,好,那同学们,那关于这个线性结构和非线性结构呢,我就先给同学们介绍到这里,我列举一下。刚才讲的线性结构和非线性结构的主要内容列到这里了,有一个基本的认识啊,同学们。
04:02
好,线性结构我们重点说了四点对不对,四点哪四点呢。线性结构,它的特点是数据元素之间存在一对一的线性关系。刚才我讲的一位数组对不对?它就是一种经典的线性结构,链表也是。那么线性结构呢?它有两种不同的存储方式,要有印象,一种我们叫顺序存储结构。一种叫链式存储结构。那么顺数顺序存储呢,最经典的比如说像这个数组。数组。就是顺序存储,而链式存储呢,最经典的就是我们的链表。听这个名字对吧,啊练表。同学们要有一个印象啊,那么我们说顺序存储和线性存储它的区别主要是什么呢?顺序存储它的存储元素是连续的,它这指的连续指的是地址是连续的,能理解这意思吧,就是说我A0。
05:05
A1他们地址是连续的,他们都在按照这个地址连续来分布,根据你这个元素的大小来进行这个内存的分配,那么链式存续,链式存储呢?它存储的元素不一定是连续的。就它的第一个节点,刚才我们讲的第一个节点和下一个节点,它不一定这个地址是连续的,它可能是比如说你你第一个节点在0X111,第二个节点就跑到0X122去了,啊,0X22去了。所以说,这有一句话叫元素节点中存放的元数据、元素及相邻的地址信息是不一定延续的。那么线性结构呢,常见的有这么四种,大家要有一个印象,别人问到你啊,说线性结构有哪些,你要答的上来。有些同学学完数据结构,连最基本的线性结构包括哪些都答不上来,这个就有问题了,那么第二个呢,我们讲的是非线性结构对吧?非线性结构呢,主要是它有包含这些多维数组,二维数组广义表,注意广义表是属于非线性结构啊,那么数结构和图结构是我们将来后面要重点讲的。
06:17
好,同学们,关于我们这讲的线性和非线性结构,我们就给大家聊到这里。
我来说两句