路径长度非带权图的路径长度是指此路径 上边的条数。带权图的路径长度是指路径 上各边的权之和 简单路径若路径上各顶点v12y…,Vm均不 互相重复,则称这样的路径为简单路径。 回路若路径上第一个顶点v与最后一个 顶点Vm重合,则称这样的路径为回路或环。 好2①2 3 3
0 1 2 3 0 1 2 3 0 1 2 3
连通图与连通分量在无向图中,若从顶点 1到顶点有路径,则称顶点v与2是连通 的。如果图中任意一对顶点都是连通的, 则称此图是连通图。非连通图的极大连通 子图叫做连通分量。 强连通图与强连通分量在有向图中,若对 于每一对顶点和v都存在一条从w到和 从到w的路径则称此图是强连通图。非 强连通图的极大强连通子图叫做强连通分 量 生成树一个连通图的生成树是其极小连 通子图,在个顶点的情形下,有n-1条边
图的抽象数据类型 class graph i public Graph (); void Insert Vertex( Type vertex void InsertEdge( int vl, int v2, int weight ) void Remove Vertex( int v ) void RemoveEdge( int vI, int v2 ); int IsEmpty o Type Get Weight( int v1, int v2 ) int GetFirstNeighbor( int v ); int GetNextNeighbor( int vI, int v2)
class Graph { public: Graph ( ); void InsertVertex ( Type & vertex ); void InsertEdge ( int v1, int v2, int weight ); void RemoveVertex ( int v ); void RemoveEdge ( int v1, int v2 ); int IsEmpty ( ); Type GetWeight ( int v1, int v2 ); int GetFirstNeighbor ( int v ); int GetNextNeighbor ( int v1, int v2 ); }
图的存储表示 邻接矩阵( Adjacency Matrix) 在图的邻接矩阵表示中,有一个记录各个 顶点信息的顶点表,还有一个表示各个顶 点之间关系的邻接矩阵。 口设图A=(V,E)是一个有m个顶点的图,图 的邻接矩阵是一个二维数组 Aeugenin, 定义: AE44=1如果()E或者(DB 0,.否则
, , , ( , ) . [ ][ ] 否则 如果 或者 0 1 < > A i j E i j E Edge i j
0 0101 ①2 Aedge= 1010 0101 ③3 1010 002 「010 A edge= 101 000 无向图的邻接矩阵是对称的; 有向图的邻接矩阵可能是不对称的
0 1 2 3 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 A.edge 012 0 0 0 1 0 1 0 1 0 A.edge