👋 Hi, I’m @Beast Cheng
👀 I’m interested in photography, hiking, landscape…
🌱 I’m currently learning python, javascript, kotlin…
📫 How to reach me --> 458290771@qq.com
喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑💻
感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏
定义
图G 由 顶点集V 和 边集E 组成,记为 G = ( V , E ) G = (V,E) G=(V,E) ,其中 V ( G ) V(G) V(G) 表示图 G 中顶点的有限非空集; E ( G ) E(G) E(G) 表示图 G 中顶点之间的关系(边)集合。若 V = v 1 , v 2 , . . . , v n V={v_1,v_2,...,v_n} V=v1,v2,...,vn 则用 ∣ V ∣ |V| ∣V∣ 表示图 G 中 顶点的个数 ,也称 图 G 的阶 , E = { ( u , v ) ∣ u ∈ V , v ∈ V } E= \{(u,v)|u\in V, v\in V\} E={(u,v)∣u∈V,v∈V} ,用 ∣ E ∣ |E| ∣E∣ 表示图 G 中 边的条数
注意:
线性表可以是空表,树可以是空树
但图不可以是空,即 V V V 一定是非空集
图逻辑结构的应用
- 铁路,车站
- 道路,路口
- 微信好友关系:没有方向(无向图)
- 微博粉丝关系:是单向的(有向图)
无向图、有向图
顶点的度、入度、出度
对于 无向图 :
- 顶点v的度是指依附于该顶点的边的条数,记为 T D ( v ) TD(v) TD(v)
- 在具有 n 个顶点,e 条边的无向图中:
∑ i = 1 n T D ( v i ) = 2 ∣ E ∣ \sum_{i=1}^{n}TD(v_i)=2|E| i=1∑nTD(vi)=2∣E∣
即无向图的全部顶点的度的和等于边数的 2倍
对于 有向图 :
- 入度是以顶点 v 为终点的有向边的数目,记为 I D ( v ) ID(v) ID(v)
- 出度是以顶点 v 为起点的有向边的数目,记为 O D ( v ) OD(v) OD(v)
- 顶点 v 的度等于其入度和出度之和,即 T D ( v ) = I D ( v ) + O D ( v ) TD(v)=ID(v)+OD(v) TD(v)=ID(v)+OD(v)
- 在具有 n 个顶点,e 条边的有向图中:
∑ i = 1 n I D ( v i ) = ∑ i = 1 n O D ( v i ) = e \sum_{i=1}^{n}ID(v_i)=\sum_{i=1}^{n}OD(v_i)=e i=1∑nID(vi)=i=1∑nOD(vi)=e
顶点-顶点的关系描述
- 路径——顶点 v p v_p vp 到顶点 v q v_q vq 之间的一条路径是指顶点序列 v p , v i , v i 2 , . . . v i m , v q v_p,v_i,v_{i2},...v_{im},v_q vp,vi,vi2,...vim,vq
- 回路——第一个顶点和最后一个顶点之间相同的路径称为 回路 或 环
- 简单路径——在路径序列中,顶点不重复出现的路径称为简单路径
- 简单回路——除第一个顶点和最后一个顶点外,其余顶点不重复出现的回路称为简单回路
- 路径长度——路径上边的数目
- 点到点的距离——从顶点 u 出发到顶点 v 的 最短路径 若存在,则 此路径的长度称为 从 u 到 v 的距离 ;若从 u 到 v 不存在路径,则 记该距离为无穷 (♾️)
- 无向图中,若从顶点 v 到顶点 w 有路径存在,则称 v 和 w 是 连通 的
- 有向图中,若从顶点 v 到顶点 w 和 从顶点 w 到顶点 v 之间都有路径,则称这两个顶点是 强连通 的
连通图、强连通图
若图 G 中任意两个顶点都是连通的,则称图 G 为 连通图 ,否则称为 非连通图
若图中任意一对顶点都是强连通的,则称此图为 强连通图
常见考点:
对于 n 个顶点的无向图 G
若 G 是连通图,则 最少 有
n
−
1
n-1
n−1 条边
若 G 是 非连通图,则 最多 可能有
C
n
−
1
2
C_{n-1}^{2}
Cn−12 条边
研究图的局部——子图
设有两个图
G
=
(
V
,
E
)
和
G
′
=
(
V
′
,
E
′
)
G=(V,E)和G^{'}=(V^{'},E^{'})
G=(V,E)和G′=(V′,E′) ,若
V
′
V^{'}
V′是
V
V
V 的子集,且
E
′
E^{'}
E′ 是
E
E
E 的子集,则称
G
′
G^{'}
G′ 是
G
G
G 的 子图
若有满足
V
(
G
′
)
=
V
(
G
)
V(G^{'})=V(G)
V(G′)=V(G) 的子图,则称其
G
G
G 的生成子图
连通分量
无向图 中的 极大连通子图 称为 连通分量 (这个是用来描述无向图的)
如果要描述 有向图 ,就要用到 强连通分量 这个概念
有向图 中的 极大连通子图 称为 有向图的 强连通分量
生成树
连通图 的 生成树 是 包含图中全部顶点的一个极小连通子图
生成森林
在 非连通图 中,连通分量的生成树 构成了非连通图的 生成森林
边的权、带权图/网
- 边的权:在一个图中,每条边都可以标上具有某种含义的数值,该数值称为该边的 权值
- 带权图/网:边上带有权值的图称为 带权图,也称 网
- 带权路径长度:当图是带权图时,一条 路径上所有的权值之和 ,称为该路径的 带权路径长度
几种形态特殊的图
- 无向完全图 :无向图中任意两个顶点之间都存在边
- 有向完全图 :有向图中任意两个顶点之间都存在方向相反的两条弧
- 边数很少的图 称为 稀疏图 ,反之称为 稠密图
- 树 :不存在回路 且 连通的无向图
常见考点:n 个定点的图,若 ∣ E ∣ > n − 1 |E| > n-1 ∣E∣>n−1 ,则一定有回路
- 有向树 :一个顶点的入度为 0,其余顶点的入度均为 1 的 有向图,称为有向树