1.图的定义
图是由顶点(vertex)集合及顶点间的关系组成的一种数据结构。Graph=(V,E)其中,顶点集合 V={x|x∈某个对象数据集} 是有穷非空集合;E={(x,y)|x,y∈V} 是顶点间关系的有穷集合,也叫边(edge)集合。Path(x,y)表示从顶点x到y的一条单向通路,他是有方向的。
2.图的相关概念
∙ 有向图(Directed Graph):一般用<u,v>表示
∙ 无向图(Undirected Graph):一般用(u,v)表示
∙ 完全图(Complete Graph):在n个顶点组成的无向图中,若有n(n−1)2条边,则称为无向完全图。在n个顶点组成的有向图中,若有n(n−1)条边,则称为有向完全图。完全图中的边数达到最大。
∙ 权(Weight):在某些图中,边具有与之相关的数量(比如一个顶点到另一个顶点的距离、花费的代价、所需的时间、次数等)。这种带权图也叫做网络(Network)。
∙ 邻接顶点(Adjacent vertex):如果(u,v)是E(G)中的一条边,则u和v互为邻接顶点,且边(u,v)依附于顶点u和v,顶点u和v依附于边(u,v)。如果<u,v>是E(G)中的一条有向边,则称顶点u邻接到顶点v,顶点v邻接自顶点u,边<u,v>与顶点u和v相关联。
∙ 子图(Subgraph):Subgraph Let G = (V, E) be a graph with vertex set V and edge set E. A subgraph of G is a graph G’ = (V’, E’) where
1. V’ is a subset of V
2. E’ consists of edges (v, w) in E such that both v and w are in V’
∙ 度(Degree):与顶点v关联的边数,称为v的度,记作deg(v)。有向图中,顶点的度是入度和出度之和。顶点v的入度是指以v为终点的有向边的条数,记作indeg(v),顶点v的出度是指以v为始点的有向边的条数,记作outdeg(v)。顶点v的度为deg(v)=indeg(v)+outdeg(v)。一般地,若图中有n个顶点,e条边,那么:e=12{∑ni=1deg(vi)}
∙ 路径(Path)&路径长度(Path length):路径可以用顶点序列表示,在某些算法中,也可用一系列边来表示。对与不带权图,路径长度指的是此路径上边的条数,对于带权图,路径长度指的是此路径上各条边的权值之和。
∙ 简单路径&回路(Cycle):路径上各顶点互不重复,这样的路径为简单路径。路径上第一个顶点与最后一个顶点重合,这样的路径为回路。
∙ 连通图(Connected graph)&连通分量(Connected component ):无向图中,若从顶点v1到顶点v2有路径,则称顶点v1与顶点v2是连通的。如果图中任一对顶点都是连通的,则称此图是连通图。非连通图的极大连通子图叫做连通分量。
∙ 强连通图(Strongly connected graph)&强连通分量(Strongly connected component ):有向图中,若在每一对顶点vi到顶点vj之间存在一条从顶点vi到顶点vj的路径,也存在一条从顶点vj到顶点vi的路径,则称此图是强连通图。非强连通图的极大强连通子图叫做强连通分量。
∙ 生成树(Spanning tree):一个无向连通图的生成树是它的极小连通子图,若图中有n个顶点,则其生成树由n-1条边构成。若是有向图,则可能得到它的若干有向树组成的森林。
∙ 最小生成树(Minimum spanning tree):一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。
*包含图的所有顶点,n-1条边*没有回路*边的权重和最小