前言-数据结构
数据结构是需要反复咀嚼,不管什么时候都可以重中获取现在在开发中的遇到的问题答案。
什么是图
图的定义
-
图是由顶点集V和顶点间的关系集合E(边的集合)组成的一种数据结构,可以用二元祖定义为:G = (V,E)
-
有向图G1,可以描述为:G1=(v1,E1),其中v1={1,2,2,4},E1={<1,2>,<1,2>,<2,4><2,4>,<4,1>}(注意是尖括号)
-
无向图G2,可以描述为:G2=(v2,E2),其中v2={1,2,2,4,5},E2={(1,2),(1,4),(2,2),(2,5),(2,4),(2,5),(4,5)}(注意是圆括号)
图的基本术语
- 有向图和无向图
- 在图中,若用肩头标明了边是有方向性的,则称这个图是有向图,否则称为无向图
- 完全图 的边数
- 无向图:0 <= e <= n(n - 1)
- 有向图:0 <= e <= n(n - 1) / 2
- 稠密图 e(边数) > 完全边数的一半
- 稀疏图 e(边数) < 完全边数的一半
度 入度 出度
- 无向图中顶点v的度:在无向图中,顶点v的度是指依附于该顶点的边数,通常记为D(v)。
- 顶点的入度:在有向图中,顶点v的入度是指以该顶点为弧头的弧的数目,记为ID(v)。
- 顶点的出度:在有向图中,顶点v的出度是指以该顶点为弧尾的弧的数目,记为OD(v)。
- 有向图中顶点v的度:在有向图中,顶点v的度定义为该顶点的入度和出度之和,即D(v)=ID(v)+OD(v)。
连通图和强连通图
- 连通图(任何两个顶点都存在v到u的路径,指无向图)
- 强连通图(任何两个顶点都存在v到u的路径,指有向图)
- 在无(有)向图G=( V, {E} )中,若对任何两个顶点v、u都存在从v到u的路径,则称G是连通图(强连通图)。
网
- 图中边或弧所具有的相关数称为权 表明从一个顶点到另一个顶点的距离或耗费。带权的图称为网。
子图
- 设有两个图G= (V, {E}) 、G1= (V1, {E1} ),V1⊆V,E1⊆E,则称G1是G的子图。
- 例:(b)、(c )是(a)的子图
注意
- n个顶点的连通图用邻接举证表示时,该矩阵至少有2(n - 1)个非零元素。因为至少 所以连通图可以看成一个树 则树e的变至少有 n - 1个边那么图就有2(n - 1)个非零元素。