图相关的概念
前言:这篇笔记先复习下图的基本概念
什么是图
图的定义Graph是由两个集合V和E组成的,记为G=(V,E),V的话指的就是顶点,E的话指的就是边,意思就是图是由顶点和边组成的
需要注意的是图可以没有边,但是一定要有顶点。
然后就是图的话大体类型分为有向图和无向图,有向图的顶点对表示<V1,V2>,无向图的顶点对表示(V1,V2),这里的<>,()只是为了区分有向图和无向图使用的
无向图G1(没有带箭头),有向图G2(有带箭头)如下图所示
G1=(V1,E1), 其中 V1={a,b,c,d}
,E1={(a,b),(a,c),(a,d),(b,d),(c,d)}
G2=(V2,E2),其中 V2={1,2,3}
, E2={<1,2>,<1,3>,<2,3>,<3,1>}
知识点:
-
平常说的几阶图,其实就是说的有几个顶点的图
-
具有n个顶点,n(n-1)/2条边的图,称为完全无向图
-
具有n个顶点,n(n-1) 条弧的有向图,称为完全有向图
-
完全无向图和完全有向图都称为完全图
关于简单图和多重图,这里放个图,学习的其实都是简单图
度
度分为出度和入度,就是对于一个顶点来说,有边指向这个顶点,那么这条线就被称作为入度,如果从顶点出去的边,那么就称之为出度,我这里说的谁指向谁其实都是在有向图中说的,无向图就没有谁指向谁的说法
所以这里会发现对于无向图来说的话,就没有出度和入度之分,只要连接到这个顶点上的边都被称之为度
知识点:
-
无向图的全部顶点的度的和等于边数的2倍
-
有向图的一个顶点的度就是说该顶点的入度加上该顶点的出度
路径
关于路径的概念:就是一个顶点到另一个顶点之间的顶点序列
- 并不是任意的两个顶点都存在路径,如下图所示
关于简单路径的概念:就是一个顶点到另一个顶点之间的顶点序列不能重复,比如如下这种,从A到D的话,B就走了两次
关于回路的概念:第一个顶点和最后一个顶点相同的路径称为回路或环,如下图所示,如果从A顶点开始出来,最后还能回到A顶点的话,那么就称之为是一个回路
关于简单回路的概念:跟简单路径和路径的概念一样的,就是简单回路中第一个顶点和最后一个顶点相同,但是其中的顶点不能是重复
相关的四个概念总结如下图所示
子图
关于子图的概念:设有两个图G=(V,E)和G'=(V',E'),若V'是V的子集,且E'是E的子集,则称G'是G的子图
如下图所示,ABC三个顶点和A-B B-C这两条边都是V和E的子集,所以这个ABC可以称之为子图
生成子图的概念:若有满足V(G')=V(G)的子图G',则称其为G的生成子图
自己简单理解就是顶点需要和图的顶点相同,但是边可以不用相同
连通图和强连通图
知识点:
- 如果n个顶点的无向图G,如G是连通图,在最少有n-1条边,如下图所示,四个顶点,想要让它成为连通图最少需要3条边
- 如果n个顶点的无向图G,如G是非连通图,在最多有C(2上)(n-1下)条边,如下图所示,四个顶点,如果想要保持非连通图,那么就多可以是6条边,如果多加了一条,那么就称为连通图了
- 对于n个顶点的有向图G,若是强连通图,则最少有n条边(形成回路)
连通分量
生成树
总结
这篇笔记后面会在写图的代码中慢慢讲概念记录下来
邻接矩阵法
用来表示图中顶点与顶点之间的关系,无向图和有向图中都有,表示的方式如下图所示
其实都是一样的,如果一个顶点A与另一个顶点B之间有边的话,那么对应的横坐标A纵坐标B的点就是1,否则就是0
在邻接矩阵中观察入度和出度的方法
这里先拿无向图来进行说明,如果想看如下图中的B顶点的入度和出度的话,在无向图中可以看到入度和出度都是一样的,所以无向图的邻接矩阵中行和列都是可以进行计算相关顶点的入度和出度
而在有向图中,有向图大家都是知道的,因为是有向的,所以入度和出度都是不同,所以如果想要统计有向图的顶点的入度和出度的话,那么就需要分别计算邻接矩阵的行和列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2020-04-07 Nginx 不安全配置导致的漏洞