图的基本知识

一.图的概念

图是由顶点结点集V边集E组成,记为G=(V,E)
V = { v 1 , v 2 , . . . , v n } E = { ( u , v ) ∣ u ∈ V , v ∈ V } V=\{v_1,v_2,...,v_n\} \qquad E=\{(u,v)|u\in V,v\in V\} V={v1,v2,...,vn}E={(u,v)uV,vV}

V(G):图G中顶点的有限非空集。 |V|:顶点数
E(G):图G中边集。 \qquad\qquad\quad |E|:边数

1.图的类型

有向图弧:<v,w>,从弧头v到弧尾w的弧
从v邻接到w
无向图边 :(v,w)
简单图1.无重复边
2.不存在顶点到自身的边
多重图允许上面两点
完全图
(简单完全图)
无向图: C n 2 = n ( n − 1 ) 2 C_n^2=\frac{n(n-1)}{2} Cn2=2n(n1) 条边
有向图:2 C n 2 C_n^2 Cn2 条边      \qquad\quad\;\;
子图V’ ∈ \in V , E’ ∈ \in E,且G‘=(V’,E’)是图
则G’是G的子图

2.连通图:

连通图
(无向图)
任意两个顶点是连通的
v,w存在路径 ( v . . . , v i , . . . w ) (v...,v_i,...w) (v...,vi,...w)
(n个点的连通图,至少n-1条边
如果有n条边,一定有环)
极大连通子图联通分量,包含连通的所有的边
极小连通子图包含最少的边


强连通图
(有向图)
任意两个顶点是连通的
v存在 ( v . . . , v i , . . . w ) (v...,v_i,...w) (v...,vi,...w) ( w . . . , w i , . . . v ) (w...,w_i,...v) (w...,wi,...v) 的路径
(任意一个点,一个回路都是强连通图)
极大强连通子图强连通分量,包含所有连通的边
(n个点的强连通子图,至少n条边,环)


生成树
(连通图)
连通图的生成树 → \rightarrow 包含所有顶点的极小连通子图
n个顶点,n-1条边
生成森林
(非联通图)
所有连通分量的生成树,构成生成森林

3.点、边、路径、回路:

(顶点的)度依附于该顶点的边的数目,TD(v)
入度以该顶点为终点 的有向边的数目ID(v)
出度以该顶点为起点 的有向边的数目OD(v)
度 = 入度 + 出度
入度之和 = 出度之和 = e


边上带有权值 → \rightarrow 带权图 → \rightarrow


路径顶点+相关的边
路径长度无权图:路径上边的数目
带权图:路径上边的权值之和
回路第一个顶点和最后一个顶点相同的路径 → \rightarrow 回路在
如:a,b,c,…,a
回路一定是连通的(任意两点均可达)


简单路径顶点不重复出现的路径(无回路)
简单回路除第一个顶点和最后一个顶点外,其他顶点不重复出现
即整个是一个环


距离最短路径的路径长度
有向树一个顶点入度为0,其余顶点入度为1的有向图

概念易错点:

  1. 若连通无向图有n个顶点,则边至少 C n − 1 2 + 1 C_{n-1}^2+1 Cn12+1
  2. V’ ∈ \in V,E’ ∈ \in E,V’和E’不一定是G的子图!因为V’和E’不一定相关联!
  3. 无向图有n个顶点,n条边,则一定有环

二.图的存储

1.邻接矩阵法

适用:无向图+有向图。——稠密图
定义:用一个一维数组存储顶点信息,用一个二维数组存储边的信息——即各顶点之间的邻接关系(该二维数组记为邻接矩阵)

无权图:
无向图:若存在( v i , v j v_i,v_j vi,vj),则A[i][j]=1,A[j][i]=1
   \qquad\quad\; 若不存在,A[i][j]=A[j][i]=0
有向图:若存在< v i , v j v_i,v_j vi,vj>,则A[i][j]=1
   \qquad\quad\; 若不存在,A[i][j]=0

带权图:
存在,则值位权值
不存在,一般对角线全为 0;其他的边为 ∞ \infty

//邻接矩阵法
typedef struct {
	char vex[Maxsize];         //储存顶点的一维数组
	int edge[Maxsize][Maxsize];		//储存边的二维数组
	int vexnum, arcnum;  //顶点数目,边数目
}MGraph;

2.邻接表法

适用:无向图+有向图——稀疏图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值