第9章:图
- 前言:图论在计算机科学中,如形式语言、数据结构、分布式系统、操作系统等方面均扮演着重要的角色。
- 图:图论中所谓的图是指某类具体离散事物集合和该集合中的每对事物间以某种方式相联系的数学模型。 在一个图中,可以用点表示具体事物,用连线表示一对具体事物之间的联系。
图的基本概念
1.1、图的定义
- 定义:一个图(Graph)是一个序偶<V, E>,记为G = <V, E>,其中: (1)V = {v1, v2, …, vn}是有限非空集合,vi称为结点(Nodal Point),简称点(Point),V称为结点集(Nodal Set)。
(2)E是有限集合,称为边集(Frontier Set)。E中的每个元素都有V中的结点对与之对应,称之为边(Edge)。- 总而言之,图是序偶,但是构成序偶的两个元素是集合
- 结点对即可以是无序的,也可以是有序的。
- 若边e与无序结点对(u,v)相对应,则称e为无向边(Undirected Edge),记为e = (u, v) = (v, u),这时称u、v是边e的两个端点(End point)。
若边e与有序结点对<u, v>相对应,则称e为有向边(Directed Point)(或弧),记为e = <u, v>,这时称u为e的始点(Initial Point)(或弧尾),v为e的终点(terminal Point)(或弧头),统称为e的端点。- 这里的弧尾、弧头如果根据有向边很容易理解,箭头所指结点即弧头,箭尾即弧尾
1.2、图的表示
- 对于一个图G,如果将其记为G = <V, E>,并写出V和E的集合表示,这称为图的集合表示。
为描述简便起见,用小圆圈表示V中的结点,用由u指向v的有向线段或曲线表示有向边<u, v>,无向线段或曲线表示无向边(u, v),这称为图的图形表示。
1.2.1、两种表示方法的优缺点
- 用集合描述图的优点是精确,但抽象不易理解;
- 用图形表示图的优点是形象直观,但当图中的结点和边的数目较大时,使用这种方法是很不方便的,甚至不可能。
- 但两者的共同缺点是很难运算,所以在计算机上用邻接矩阵存储、运算
1.2.2、图的矩阵表示
- 定义:设图G = <V, E>,其中V = {v1, v2, …, vn},并假定结点已经有了从v1到vn的次序,则n阶方阵AG = (aij)nxn称为G的邻接矩阵(Adjacency Matrix),其中
- 注意 :如果是无向边,那么可以看做是两条方向相反的有向边来写邻接矩阵
1.3、图的操作
- 定义: 设图G = <V, E>