6.2.2邻接表法

最近作业写了好久终于有时间了 哈哈哈哈╰😎╮〈😃ノ加油哦

 各位同学大家好,本节课我们来学习图的第2种存储方式就是连接表法,上一节课我们学习了图的连接,矩阵法,对于这样的图,我们可以用一个连接矩阵,用一个矩阵来存储它所有的节点的关系,也就是边的集合,那么我们发现在这样的矩阵当中,如果边的数表非常少的话,它会造成很多空间的浪费,也就是很多空间并没有实际的存储意义,那么对于这样边稀少的图,也就是我们所说的稀疏图,其实采用连接矩阵法,它的存储效率会非常低,会有许多空间造成浪费,所以本期我们来讲解图的第2种测试方式就是连接表法,我们知道连接矩阵法是采用了一个矩阵存放各个顶点之间的关系,就是我们所说图的边的集合,那么ac表法是如何来存储这些边的呢?其实它是为每一个顶点建立了一个单列表来所放于它相邻的边这样的结合主要有两种掉。存放各个顶点之间的关系,就是我们所说图的边的集合,那么ac表法是如何来存储这些边的呢?其实它是为每一个顶点建立了一个单列表来存放与它相邻的边这样来存放,变得结合在这些变化中主要有两种表,第1种与连接矩阵法,类似它有一个存放顶点的顶点表,但是它与那个句式法还有一点不同,我们来看有什么样的不同,它依旧是采用顺序存储,也就是采用数组来存放各个顶点,但是每个数组元素存放的不仅仅是顶点的数据部分,还有一个是边吊的头指针,也就是刚刚我们所说的,为每一个顶点建立的单链表,那么存放它的投入指针来指向这一个单元表,那么第2种表就是我们所说的这些单位表,它们叫做编表,在有项目当中也叫做出编表,这些编表采用的是列式分数,就是单列表单列表单列表中存放于一个顶点相恋每一个节点表示一。这些编表采用的是链式分数,就是单链表单验方与一个顶点相连的所有的边,每一个代表的节点表示的是一条从该顶点到节点顶点的变,大家注意一下,这事其实是有方向的,他是从该顶点出发到我们所说的下一个端点的这样一条边它是一条有方向的变化,所以在有象图当中我们称之为出边表,我们是从这个顶点出发的点,还有这就是两种表,一种是顶尖表,一种是编表,我们发现在连接表法当中采用的是顺序存储,加上链式存储这样的存储方式好我们来看一下顶点表和边表的节点结构,首先来看顶点表的节点结构,顶点表节点结构一直有这样两块域,第1个域是存放数据的data域,第2个域的部分是存放它的单列表的图纸,真的部分这是一个指针域这是店。产业结构今天这种经济结构一直有这样两块玉,第1个玉是存放数据的data玉,第2个玉的部分是存放它的单根表的头指针的部分,这是一个指针玉好,这是顶点秒节点,接下来我们来看b秒节点,d秒节点你就有两块玉,它与我们单面表的节点结构其实是相似的,依旧存放数据的部分和存放下一个节点的指针部分,但是这里的数据存放其实是该条边的另一个端点在这个乡土当中也就是湖头位置的整个端点而指人域则是存放下一个边表节点的地址,也就是指针,他说这就是顶点表节点的结构和编表结点结构好,这就是谤法,接下来我们来看一个临时表法的意思,来看一下它是如何实现存储到这是一个有向图。你这边法实现了一个无向图的存储,那么接下来我们来看您急鞭法是如何用语言来定义的定义,你是表我们用了三个结构体,第1个结构体表示倒是编表节点,那么在编表结点当中,我们有两部分,第1个部分是表示下一个端点的数据部分,第2个部分则是指向下一个变量节点的指针部分,所以在单一结构当中依旧有两部分,第1部分用一个整型变量表示,表示的是下一个端点的一个数字下标,那么第2部分则是一个指针,指向了下一个平面节点,那么我们发现这里还有一个注释,一个绿色部分表示的是,如果该边是有全职的,我们在这里需要加上另一部分也就是表示该编的选中部分,一个因素变量表示该变到一个权重好,这就是边眇节点,下面我们来看下一个结构体数据部分。这就是边表节点下面我们来看下一个结构体,下一个结构体表示的是顶点表也是顶点表景点,那么k结构体中依旧有两部分,第1部分是存放了该顶点的数据部分,一个我是xx类型的一个data,那么第2部分则是我所说的指向属于它的一个边角的头指针,一个单元表的头指针,它的指类型是我们刚刚定义的而note类型的好,接下来我们把它声明了一个数组类型的变量,那么这个数组类型变量表示的则是顶点表。那么这个数组类型的应该表示的则是顶点表,那么剩下的最后一个结合体就是表示的是连接表,在该机构当中,首先我们定义了一个刚刚定义的的一个data,那么第2部分则是我所说的指向属于它的一个编表的头指针,一个单编表的头指针好,接下来我们把他声明了一个数组类型的变量,那么这个数量表示的则是顶点表,那么剩下的最后一个结合体就是表示的是邻接表,在柑桔过程当中,首先我们定义了一个顶点表,那么这个顶点表其实中间包含了所有顶点的数据以及指向它的编码节点的图纸帧,所以它可以表示整个你接表,那么接着还有两个整形定量分别表示的是它的顶点的数量和它的边的数量,好,我们把它取名为l graph一些特点这是用这样的。数量和它的边的数量好,我们把它取名为l graph好,这就是明显表达语言定义好,接下来我们来总结一下迎接表的一些特点,这是一个语象图,我们刚刚用这样的理解表来实现了它的存储,它有怎样的特点呢?第1个是若质疑为5象图存储空间的大小为大o零点的数量加上二倍的边的数量,为什么呢?因为我们知道在无像图当中我们要有存放顶点的顶点表,那么这个顶点表的大小是不是就是顶点的数呀,那么还有第2部分,第2部分是编表,这个编表存储了多少编表节点呢?因为我们知道无向图当中的无向边,我们要用两个边眇节点来表示,两个反方向的邮箱编表示了5项图当中的一个无向边,所以这种编表节点的数量是二倍的变成数量,所以一个我们需要的存储空间就是顶点的数量加上二倍的变的数量,然后这是一个数量级下面我们来看,若是因为有相同存储空间为哦。的数量,然后这是一个数量级下面我们来看,如果是因为有效图存储空间为大o顶点的数量加上b的数量,因为在与成数当中,每一条边只需要一个边上节点就可以表示了,所以这个也是顶点数量加上必然的数量没有乘以2好,这就是存储空间的大小,接着我们来看,第2个是圆心表框架适用于奇出图,正如刚刚我们所说菱形表,只有在它存在变的情况下,我们才会生成一个空间,一个节点去存放它的边关系,那么所以它更加适用于稀疏图,接着我们来看下一个特点,若这位五象图所节点的度为该节点边表的长度,因为该边表存放了月该节点相应的所有的边,所以在五象图当中单机亮度就是变量的长度,而在有些过程当中,则节点的初度为该节点电表的长度,因为在一个相同当中对于一个顶点的它的边表,我们只存放从这个顶点出发的那些边所以他。幅度为该丁点点表达长度,而计算速度是我们所要面对整个的一些表,因为我们只有编列成那些表,才可以找到以该能点为弧头位置的点的数量,所以我们要建立整个密接表,好,接下来我们看最后一个特点,您继续表示,不唯一的b面的节点的顺序根据算法和数的不同可能会不同意,这里指的是我们在建立边表示,那么每一个建立边表的边表节点,每一个边它的输入顺序如果不同的话,它的边保节点的顺序也会不同,所以整理姐表示不唯一的,这是邻接表的最后一个特点,最后我们来一起总结对比一下,灵界区分法理解谤法在邻接矩阵法当中我们采用了一个矩阵的形式存放了每个顶点之间的关系,也就是别人的集合,而在于疗法我们采用了一个编表来存放碗边的集合,这两种方法有怎样的区别呢?接下来我们就来对比一下这两种存储方式适用性。这种方式那么首先来看适用性,我们知道我们在聚镇更加适用于成立徒儿借表更加适用于稀疏图,为什么呢?因为连接去挣,无论改变是否存在,我们都会有一个乘数单元,我们都会生成一个小单元,所以只有重新涂,也就是边多的土才能更好的利用你再去挣,然后对着谤法则是只有改编存在,我们才会生成一个编表节点存放这样的边,所以邻接表框架适用于稀疏徒儿,为什么他不适用于稠密图呢?因为我们知道林希表每个宾馆节点增加了一个指针域,所以其实编越多,它浪费在指针域上,空间就会越多,所以他更加适用于悉数吐,接下来我们要讨论他们之间算术方式的不同,在连接矩阵当中,我们采用了一个一维数组存放了所有的丁点,一个二位数组存放了我们所处的连接矩阵,所以它采用的是顺序顺手捷报也就是。也就是一个因为数组存放了所有的顶点,而采用了许多单列表存放了它们的边表,所以在菱形表当中,我们是采用了数据存储加上面式存储结构,这是它们的参数方式,接下来我们看第3个问题就是判断两顶点间是否存在编的这一个操作,那么在那些句子当中如何判断两个景点之间是否存在边的,我们只要找到在这些学生当中对应数字下边线的值,就可以判断该边是否存在,那么对于没有权重导图来讲,如果它是1的话则表示改变存在,如果它是0的话则表示该变不存在,这样的判断其实是非常方便,也是非常高效的,而在邻接表当中如何判断改变是否存在呢,我们所要遍历整个编表才能判断改变是否存在,最后我们来看这样一个问题,找出某定点向你那边如果他是五的话或者。改变是否存在呢,我们则要遍地整个编表才能判断改变,是否存在,最后我们来看这样一个问题,找出某丁点相邻的边,如果它是五相符的话,在连接矩阵法当中,我们辨别该点点对应的行或者是对应的列,才可以找到与顶点相等的边,而在年级表法当中我们只需要变列该点点对应的边表就可以了,所以临界确认法的效率会比较低,一键表法的效率会比较高,那么接下来我们来看有相同,如果是有相同的话,明天矩阵只要变列整个矩阵,才可以找到某定点相应的边而给你制表法的话我们要编列整个编表,也就是所有顶点的编表才可以找到与该顶点相邻的边相对比来讲离子矩阵,便利的是所有的矩阵,它是n×n的大小,而在菱形表法当中我们只需要边界所有的边也就是一个e的大小就可以了,所以对比来讲,连接矩阵法也是效率比较低。可以了,所以对比来讲,你这居上法也是效率比较低,你这原版的效率也会比较高,所以无论有相同还是有相同还是无相图,对于这样一个问题找出问题点相应的边的问题,无论是女相图还是无相图理解矩阵的效率都会比较低,你这些表法的效率相对比都会比较高好,我们采取了4个方向对比了一些矩阵和一些表,在我们接下来的使用过程当中,就要采取更合适的测试结构去实现我们的存储,然后这就是本节课的全部内容。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值