理论基础 —— 图
【图】
图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E),其中 V 是非空有限集合, 代表顶点,E 是可以为空的有限集合,代表边。
若顶点 vi 和 vj 间的边没有方向,则称这条边为无向边,用无序偶对 (vi,vj) 表示;若顶点 vi 和 vj 间的边有方向,则称这条边为有向边(弧),用有序偶对 <vi,vj> 表示,其中 vi 称为弧头,vj 称为弧尾。
若图的任意两个顶点之间的边都是无向边,则称该图为无向图;若图的任意两个顶点之间的边都是有向边,则称该图为有向图。
【基本术语】
- 在一个图中,不存在顶点到其自身的边,且同一条边不重复出现,则称图为简单图
- 在一个无向图中,对于任意两个顶点 vi 和顶点 vj,若存在边 (vi,vj),则称顶点 vi 和顶点 vj 互为邻接点,同时称边 (vi,vj) 依附于顶点 vi 和顶点 vj
- 在一个有向图中,对于任意两个顶点 vi 和顶点 vj,若存在弧 <vi,vj>,则称顶点 vi 邻接到顶点 vj,顶点 vj 邻接自顶点 vi,同时称弧 <vi,vj> 依附于顶点 vi 和顶点 vj
- 在一个无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图,其有 n*(n-1)/2 条边
- 在一个有向图中,如果任意两个顶点之间都存在方向相反的两条弧,则称该图为有向完全图,其有 n*(n-1) 条边。
- 一个边数接近完全图的图称为稠密图,一个边数远远少于完全图的图称为稀疏图
- 在无向图中,依附于顶点 v 的边数称为顶点的度,记为 TD(v),在 n 个顶点 m 条边的无向图中,所有点的度的和为 2m
- 在有向图中,以顶点 v 为弧头的弧的数目称为顶点的入度,记为 ID(v),在 n 个顶点 m 条边的有向图中,所有点的入度和为 m
- 在有向图中,以顶点 v 为弧尾的弧的数目称为顶点的出度,记为 OD(v),在 n 个顶点 m 条边的有向图中,所有点的出度和为 m
- 对边赋予的有意义的数值量称为权(权值),边上带权的图,称为网(带权图),根据图是无向图或有向图,分为有向网图、无向网图
- 在无向图 G=(V,E) 中,对于一个满足
的顶点序列
,称为从顶点 vp 到顶点 vq 之间的路径,若 G 是有向图,则 G 的路径是有方向的
- 在路径序列中,起点和终点相同的路径称为回路(环)
- 在路径序列中,顶点不重复出现的路径称为简单路径
- 在路径序列中,除起点终点外,其余顶点不重复出现的回路称为简单回路
- 对于一个非带权图,路径上边的个数称为路径长度,对于一个带权图,路径上各边权的和称为路径长度
- 对于图 G=(V,E) 和 G'=(V',E'),若
,则称 G' 为 G 的子图,一个图可以有多个子图
- 在无向图中,如果从一个顶点 vi 到另一个顶点 vj(i≠j) 有路径,则称顶点 vi 和 vj 是连通的,如果图中任意两个顶点都是连通的,则称该图是连通图
- 非连通图的极大连通子图称为连通分量,其中,极大是指包括所有连通的顶点及这些顶点相关联的所有边
- 在有向图中,对图中任意一对顶点 vi 和 vj(i≠j),若从顶点 vi 到顶点 vj 和从顶点 vj 到顶点 vi 均有路径,则称该有向图是强连通图,非强连通图的极大强连通子图称为强连通分量
- 对于一个具有 n 个顶点的连通图 G ,包含 G 中全部顶点的一个极小连通子图称为生成树,其中,极小是指子图中只有一个入度为 0 的点且其他点的入度均为 1
- 在非连通图中,由每个连通分量都可以得到一棵生成树,这些连通分量的生成树就组成了一个非连通图的生成森林
【图的存储结构】
图的存储结构分为邻接矩阵、邻接表、链式向前星、十字链表、邻接多重表等,这些存储结构各有优劣,应根据实际情况进行选用,具体内容:点击这里
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南