章北海 自然选择 宇宙闪烁
我的学习就是图,那么学习图,这种数据结构与我们之前学习的方式是一样的,我们也要从三方面对它进行学习,首先是它的逻辑结构以及一些相关的概念,接着是它的存储结构,还有它的操作,那么接下来我们来看一下本章所要学习的主要知识点,首先我们讲解图的逻辑结构以及它一些相关的基本概念,接着我们会讲解图的存储结构,图的存储结构主要有4种,分别是连接矩阵,连接表法连接多重表一节有10字面表,那么前两种表示方法是针对于数据存储以及电视存储导的广电。一些便利我们会细节的讲解,他的变异过程以及它的算法实现,最后我们也要讲解图的一些相关重要的应用,在考研当中最重要的应用有4个分别是最小生成树,最短路径还是一件,冠县路静好,这就是本章所有讲解的知识点,那么本节课我们首先先来学习有关图的基本概念,什么是图呢?之前我们学习过线性表,这种线性结构它是1对1的关系,实际上我们讲解一个一对多的关系,一个非线性结构,那就是竖型结构,图是什么样的关系呢?在第1章我们学习过图是多对多的关系,也就是每一个节点都可以有许多节点与它相连,在书中对于图是如何定义的呢?书中是这样严格定义的图j有顶点及v和边形e组成记为g=括号为e,我们用这样的二元组顶点级以及边际表示一个j其中。叫图j接着它讲,其中vg表示图,这周顶点的有线非空集DJ表示图,这个轴顶点之间关系集合,也就是我们所说的边的集合,那么我们来看下面这个例子,假如它是一个图它是g有这样的二元所来表示,那么该图的零点几怎样表示呢?我们用v等于大括号圈起了所有的顶点,那么在该图当中,一共有5个顶点分别有5个顶点,分别是5个顶点,分别是abcd,我们用这样的方法表示了图的顶点集,其实我们来看编辑是如何表示的编辑你就用一个大括号圈起了所有的边,那么每一个边是如何表示呢?我们用一个小括号来表示一条边这两个端点这里为什么用小号呢之后会有详细的讲解编辑那么我就用了。那么这里为什么要用小括号呢?之后我们会有详细的讲解好,这样呢就表示了编辑,那么ab这条边就用了小括号ab这样来表示,这就是编辑的表示方法,接下来我们来看,那么在定义当中有一个非常重要的点就是有限非空集,这里有些非公即为什么很重要呢?因为它说明了土是不能为空的,大家回忆一下,在之前我们想起了线性表可以为空数可以为空,但在这里图一定不能为空没有空图这种表示方法好,这就是定义当中我们要注意到的一个点好,接下来我们来看我们用绝对值符号,例如绝对值v表示图中中顶点的个数,因为这种绝对是符号,把集合圈了起来,表示集合中元素的个数也称为土质的阶接上边际的个数,也就是绝对值e所表示图中最为典型的比喻,那么在电路当中它顶点的个数也就是绝对是v则是5的接接上边际的个数就是绝对值e所表示的图中边的条数,那么在态度当中,它顶点的个数与是绝对是,v则是5边际当中边的个数就是绝对是,e则是6好,这就是有关图的定义。零点的个数也就是绝对是v则是编辑当中编的个数也就是绝对是,e则是6好,这就是有关图的定义。之一则是6好,这就是有关图的定义,大家可能会发现在图的定义当中,相对于我们之前学习过的数或者是线性表,它提供的约束条件是非常的少的,其实在考验当中,我们主要学习和考察的是图当中一种比较特殊的部分,好了接下来我们就来介绍有关图道一些相关基本概念,这些基本概念比较多,但是也非常重要,大家可以慢慢的去理解,首先我们来看两个特殊的图,第1个是5项图,什么是五象图呢?五象图其实就是我们刚刚举的哪一个例子,大家还记得我们怎样表示该图吗?我们要点集和编辑的表示方法,那么编辑其中每一条边都是用一个圆括号来表示的,其中是每个边的两个端点为什么要呢其实这样的表示什么是这边是没有方向的。这样的两个括号表示的则是五象边,什么是五象边五象边即是指这个边是没有方向的,它并不区分其实和中指断点其实和中指两个方向,那么所以我们可以用这样的无序段来表示,微w等于wv用原画号把它们圈起来,因为它是无效的,所以物质区分为w和w为它们表示的是同一条无相边,我们也这样说,vw互为连接点,那么什么是5象图呢?五象图则是在该图当中,所有的边都是向边,然后这就是相同的在下面我们来看什么事有不像,图其实学会了无像图,大家能猜到偶像图是什么了,有时像图其实所有的边都是有向边其实位置为证当中这样的。我们也称这样的铝箱边为弧,那么v的位置就是该边的浮尾,而大v位置就是应该变到弧头非常的好记,有箭头的就是弧头,没有箭头的就是弧尾好,这就是有镶边,它其实有一点像我们数学当中的向量表示那么有相边怎样来描述呢?我们用这样的有序的来描述,大家发现了有向边它是用先括号来圈起来的,其中是两个端点依旧是唯和大不用,但是在这里维克w它是有位置的区分的,也就是第1个位置,v的位置一定是湖北而第2个位置w一定是弧头,它是按照我们画箭头的顺序所排列的,所以这里为w和wv是两个完全不同的有相变,vw是从v指向w而wv则是从w是小v表示我们也称微云街道。毕业称v接到w或w连接紫v那么与相同,则是所有的边都是三边,接着我们来画出一个偶像图的意思,这就是一个偶像图其中每个边都是有相边,那么怎样来表示它呢?零点几你就用一个大括号来圈起了它的所有顶点,而编辑则是每一套边我们都要用一个铅括号来表示,其中也是两个端点,分别是奇是端点和中式端点,也就是我们健康所指的这个方向,那么在该项目当中有这样一个条件,分别是从b指向a的边,就是前括号ba从a指向c的边ac从a指向e的边ae,从b指向c的边,bc从c指向d的边cd,以及最后一个从c之角e的边ce好,这就是一个有效图,我们的面积表示方法,我们也称它为无极好,接下来我们来看另外一种特殊的图,它就是简单图和多重图图,首先我们来看什么是简单图简单普及者非常简单。那什么是简单图简单的几个非常简单的图片,这样的图都是我们简单图,他这个也是5象图,也可以是有像图,那么我们来总结一下简单图的要求,他满足两个要求,第1个要求是无重复的边,也就是说我们多点之间没有相同的对面,第2个是不存在节点到自身的变的,两端点不会是你接电,如果这两条线都同时满足的话,那么就说明态度是一个简单图,那么什么是多重图呢?多重图记者可以简单读,也就是说他不满足两条线当中的每一个人存在轴的边,或者存在的节点到此时的面,接下来我们就来看多重读的例子,第1个我们不管是不是在ab两个点之间存在着。中途它是不是在ab两端点之间存在这样两条一样的变量,所以它是一个波冲突,其实我们来看第2个意思这样的意思则是存在节点到自身边,我们发现从a节点到a节点是不是存在着这样一条有效面啊?所以它也是一个多冲突,那么我们来看简单图的第2个有相同的例子,如果我们增加一个从a指向b的边,那么它变成了一个多重图嘛,当然是不是的,因为我们刚刚讲过有向边从b指向a和从a指向b,这样两条边是两种不同的边,它并不代表在两端点之间存在着重复的边,所以它并不是一个多冲突好,这就是简单读和多重图的概念,其实在数据结构这门课当中,我们仅仅是考察简单图,对于做任何人来讲,我们几乎是不会提到的,好,这就是简单读读说那么根据有效和5项分类,我们把完全图分为5项完全图和5项完全图,首先我们来学习我们的项目的需求,其实他还要满足这样的条件,任意两个顶点之间都存在着一条边满足这张图我们称为5项完全图,我们来看一个5个顶点相同的例子,a图就是一个像完全图,任意两个顶点之间都存在这样,这样一条边那么有相关元素是怎样定义的呢?首先它一定是一个有效的功能,那么接着它还满足,任意两个顶点之间都存在着方向相反的两条弧这就是一个还有五个经典这就是完全图其实在考研看图其实在考研当中,我们最喜欢看到的就是这两种图,因为它与我们之前所讲述的马鞍山市一样,它是一种非常特殊的条件啊,完成之后还有另外一个考点就是n个节点的无效完全图或者是有效完全图,它有多少条边呢?我们先来看5项完成图,那么n个顶点的5项完全图,有n×n-1÷2条边,为什么呢?我们假设有n个顶点,那么每个顶点是不是都可以与剩下的n减一个顶点,边切成一条边啊,这些边一共就有n×n减一个,那么为什么还要除以2呢?因为我们发现如果a与剩下的n减一个零点,有这样n减一条边,b也与射线的n减一个顶点,有这样n减一条边,那么是不是就有两个重复的边啊,分别是从a是从a到b和从b到a,而在5象图当中,从a到b的边,从b到a的边所以他还要这就是无边的个数,那么接着我们来看有线网线图,其实学完5线环线图,我们再看有线网线图是不是就非常简单了,即使没有除以2的条件,为什么呢?它与无线完全图n×n-1得来的方法是一样的,但是它没有除以2,因为有消耗性图当中从a到b的边和从b到a的边,是不是表示的是两条不同的边,所以这边所以这里我们没有除以2,它是n×n减一个点好,这就是完全图边的个数的一个考点,接下来我们学习什么是子图,其实提到子图大家可能就会猜到,它是不是就是某一个图当中的一些部分啊,但是这些部分有什么样的要求呢?我们来看它的定义方法,它是这样严格定义的,是有两个图g和g一撇它们由二元组为e和二元所b撇e撇做成若a撇是a的子集,且一撇是e的子集,何超这篇为g的子图而且若薇姐何超这篇文章的子图,而且若vg=vGPS则称g撇为g的商场子图,也就是说子图的顶点级与原图的顶点级相等的话,则上此图为原图的生成4图好,这就是有关子图定义,接下来我们来看有关子图的一些例子,这是一个五象图,那么我们来看它的字图都有哪些呢,我们来画出一个,这是不是一个它的子图啊?其中每个定点都属于原图,每条边也都属于原图,所以它是它的子图,我们来看第2个例子,第2个例子是不是也是他的字图啊,1就是边是他的自己顶点也是他的自己,但是这个图是不是一种特殊的词图叫做生成司徒啊,因为它包含了原图当中的5个顶点,所有的顶点,所以它是手上字图,接下来我们看第3个例子第3个例子,我们发现它作为也是为3有相同两种方向进行讨论,那么在5项目当中它叫做连通,而在有项目当中它叫做想联通,那么这里大家需要注意的是无向图,只有连通有向图,只有强联通大家不要混淆,那么什么是五象图的联通呢?我们称若从顶点v到顶点,w有路径存在,则称v和w是联通的,我们来看一个联通的例子,这两个顶点是不是就是联通的啊?它有一条边把它们相连,它们有路径存在,所以他们是联通的,那么联通只有这样一种形式吗?在电影当中我们发现并不是边存在,而是边存在而是路径存在他们之间存在着这样一条路就是联通也是这样存在一条我们若从顶点v到顶点,w和顶点,w到顶点v都有路径存在,责称v和w是请连通,我们来看刚才我们说的这个例子,是不是仅存在一条路径,就是从v到大v的路径,而它不存在从w到v的路径,所以这个不是小圆通,我们要想让它变成小圆通,要增加这样一条有向边从w到v到b的相变,这样我们既可以从v到w,也可以从w到v,它就变成了强联通,那么前联通也仅仅只有这样一种形式吗?你能发现它的定义也是提到的是路径而不是边,所以这样是不是也是请联通的例子啊?我们从v通过一个顶点是不是可以到打不掉,而从打不过可以通过一个个向边直接到v,这也是一个请联通的例子,大家不要局限于这种变的形式好,这就是联通和抢联通那么学习联通图和冲突那么什么是别通通呢?其实非常好理解,这一两个节点之间都是联通的,我们称为它为联通图,那么这样就是一个联通图的例子,每两个点点之间都存在着路径,把它们连接起来,那么什么是强烈冲突呢?强烈冲突,即使任意两个阶段之间都是强烈通道,那么这就是一个潜能通的例子,任意两个顶点之间都存在着方向相反的两条路径,那么在该例子当中,从a到b到c,再到d又返回到了a,是不是存在着这样一个循环类似一个环状的一个结构,那么在该环状结构当中,4个顶点都是可以相互达到的,它都是存在方向相反的两条路径,那么接着我们来看剩下的一个顶点e,那么从a到e到d到a,是不是也存在着一条循环的路径啊?那么符合强连通图就下面介绍一个小考点,就是n个定点的联通图或者是抢镜头图,它最少要有多少条边,即是保证它是联通或者前方的情况下要求达到边数最少,我们首先来看五象图当中的联通图,它最少有n减一条边,它是如何构造的呢?我们来举一个5个顶点的例子,它是这样构造的,即使某一个顶点与其他剩余的顶点连接着这样一条边,这就是它的构造方法,其实它可以构造出其他另外很多种情况,这个也只是其中一种,我们想象是不是也可以把它们连成一条类似直线的情况,这也是最少的联通图,那么为什么它可以是n减一个呢?我们发现如果我们再减少一条边的话,是不是就会造成某一个顶点被孤立啊?它就不是一个联通图了,好,接下来我们来看抢联通图他是如何构造其实他们不掉就是他的过错,我们一直来看一个5个经典的例子,他是构造出了类似于一个环状的结构,根据刚刚我们所缴是不是在干还上每个顶点都可以通过这样循环的路径找到其他另外的顶点啊,所以他是一个强连通图,那么这就是前通图最少编的情况,你们总结一下连通图,n个顶点最少有n减一条边,而其他同图最少有n条边好,这就是这样一个小考点,这就是我们看另外两个知识点,就是连通分量和抢占的分量,帘头侧面针对是五象图,其他的分量你就针对的是邮箱图来讲的,还有这两个词,可能大家会比较难以理解,我们来换一个说法,林头分裂成为几家联通此图而健康的方向,成为其他想阅读跑去其他部分首先通知图是不是就是某个图而且该图已经是而不是就是某一定是响应通道,我们只剩下了理解极大的部分,我们来看对于眼中分量和前分分量的定义,对于g的一个强硬的分量或者是0分量这一点,如果不存在g的另外一个前联通子图这两点或者是联通自读这两撇使得这一撇属于这两撇则称,这一撇为j的相联通分量或者是联通分量,其实这个定义是不是这个定义是不是蛮好理解的,就是该平衡的分量一定是最大的那种什么意思呢?就是没有另外的联动使徒或者是前后的使徒可以把它包含起来满足这样的条件,我们择商策略也能怎么样,或者是想象中怎么样,大家要注意一点,是该给它分量或者是钱的分量,一定是不是尽可能的包含进来更多的顶点以及更多的边啊,但是它的前提要求是保证它是联通的情况下这是一个足可以与原图一样,我们发现刚刚的那个例子是不是有两个极大连通子图啊这个意思,只有一个其他联通司徒,其实我们这样的结论,如果原图它是一个连通图或者是一个前途,那么它的里头分量或者是产生的分量都是与原图一模一样的,而如果原图并不是一个连通图,或者是它并不是一个像联通的图,那么他到连通分量或者是其他的方向就会有许多个,还有接下来我们了解生成树和生成森林他们是什么呢?我们首先来表现极小连通子图,刚刚我们讲解过极大连通子图,其他联通图是在保证联通或者是强东的情况下更多的保证联通的情况下最少这是一个是这样的他是有四最少在漫长它是有4个顶点,而且包含最大的变数,达到最少在满足联通的情况下达到了最少好,这就是极小联通自读,接下来我们就来学习什么是商乘数生成树的概念,非常简单,其实联通图包含全部顶点的一个极小联通4图,首先我们来看原图一定是一个连通图,且它的极小连通视图一定包含所有的顶点,满足这样条件,我们则称该极小圆的字图为它的生成数,我们来看这样一个联通图的意思,它的一个极小联通此图是不是这样的,并且该介绍联通4图包含了所有的顶点,所以它是原图的一个生成数,那么胜算数只有一种吗?答案是不是的?这张图是不是也是原图的一个生成数,它也是一个极小圆的子图,并且它也包含了所有的顶点,所以生成数并不一定唯一最少编一个那么就是最少通途n个顶点,最少边数为n减一个,那么射程数是不是就是最少的变数?所以n个顶点图的生成数有n减一条边好,这就是生成数的概念,好刚刚的胜任数,它的定义当中保证的前提条件是点通图,那么身上三角形几是指啊,非ad图所有联通分量的生成数组成的生成森林,其实是联通图,只能生成生成数,而非联通图,只能生成生成森林,接下来我们一起来看一个生成森林的例子,这是一个非给通图,这就是他的两人的分量,那么这两个人的分量的生成树是这样子的,所以这两个数组成了在非连通图的生声声临生生森林,因为声声瘦的部位一肖,所以他也是不唯一的好处就是上述和圣上森林,接下来我们学习下一个基本概念,就是顶点的度电路即是以概念定位。带一个基本概念就是我什么是网呢,其实在该图当中,我们为边赋予了一些权重,这是一个无效图的网的意思,这是一个有效图当中网的例子,我们为一个边增加了一个权重,这样权重其实表示的是一些特定的含义,比如说在我们分析路径问题的时候,我们可能会把它表示为路径的长度或者是路径的花费,那么这样的概念其实就是网的概念,每一个边都有一定的全值,接下来看另外一组基本概念就是稠密图和稀疏图它的名字非常的形象,手臂图其实是这边多的图,这就是一个稠密图的例子,那么稀疏图则是指点非常少的图,这是一个稀疏图的意思,大家可能会发现对于稠密和稀疏我们并没有一个严格的界定。其实在书中它的界定是非常模糊的,但是一般情况下我们有这样的界定方法,也就是当边数小于节点数乘以log节点数的时候习俗。现在的方法也就是当边数小于节点数乘以log节点数的时候,我们称该图为一个系数图,反之我们称它为稠密图,好像就是稠密图和稀疏图的概念啊,接下来我们来看有象数,什么是有象数呢,大家可能会有疑问,为什么在图当中我们提到了竖呢?我们来看有象数是什么样的定义方法呢?它是一个顶点的长度为0,其余的顶点渡部建唯一的有向图,他依旧是一个,那么大家可能会有疑问,为什么把它称之为书道?我们试试画出一个有橡树来看,这就是一个有橡树,大家可能会发现他是不是长得非常像我们之前所讲的,恕我们给它取了这样的名字,那么表象数合数有哪些区别的?我来看一个顶点,我们来看这样一个顶点,那么这样一个顶点,它的出度为2,它的。