1图的基本概念图的存储结构图的遍历图的连通性问题最小生成树最短路径活动网络第七章图2图的基本概念图定义图是由顶点集合(vertex)及顶点间的关系集合组成的一种数据结构:Graph=(V,E)其中V={x|x某个数据对象}是顶点的有穷非空集合;E1={(x,y)|x,yV}或E2={|x,yV&&Path(x,y)}其中,E1是顶点之间关系的有穷集合,也叫做边(edge)集合,此时的图称为无向图。E2表示从x到y的一条弧,且称x为弧尾,y为弧头,这样的图称为有向图。3有向图与无向图在有向图中,顶点对是有序的。在无向图中,顶点对(x,y)是无序的。完全图若有n个顶点的无向图有n(n-1)/2条边,则此图为无向完全图。有n个顶点的有向图有n(n-1)条边,则此图为有向完全图。000011112222654334邻接顶点如果(u,v)是E(G)中的一条边,则称u与v互为邻接顶点。子图设有两个图G=(V,E)和G‘=(V’,E‘)。若V’V且E‘E,则称图G’是图G的子图。权某些图的边具有与它相关的数,称之为权。这种带权图叫做网络。0123子图01301230235顶点的度一个顶点v的度是与它相关联的边的条数。记作TD(v)。在有向图中,顶点的度等于该顶点的入度与出度之和。顶点v的入度是以v为终点的有向边的条数,记作ID(v);顶点v的出度是以v为始点的有向边的条数,记作OD(v)。路径在图G=(V,E)中,若从顶点vi出发,沿一些边经过一些顶点vp1,vp2,…,vpm,到达顶点vj。则称顶点序列(vivp1vp2...vpmvj)为从顶点vi到顶点vj的路径。它经过的边(vi,vp1)、(vp1,vp2)、...、(vpm,vj)应是属于E的边。6顶点的出度:以顶点v为弧尾的弧的数目;顶点的入度:以顶点v为弧头的弧的数目。ABECF有向图顶点的度(TD)=出度(OD)+入度(ID)TD(B)=OD(B)+ID(B)=3例如:7路径长度非带权图的路径长度是指此路径上边的条数。带权图的路径长度是指路径上各边的权之和。简单路径若路径上各顶点v1,v2,...,vm均不互相重复,则称这样的路径为简单路径。简单回路若路径上第一个顶点v1与最后一个顶点vm重合,则称这样的路径为回路或环。0123012301238ABECF如:从A到F长度为3的路径{A,B,C,F}9连通图与连通分量在无向图中,若从顶点v1到顶点v2有路径,则称顶点v1与v2是连通的。如果图中任意一对顶点都是连通的,则称此图是连通图。非连通图的极大连通子图叫做连通分量。强连通图与强连通分量在有向图中,若对于每一对顶点vi和vj,都存在一条从vi到vj和从vj到vi的路径,则称此图是强连通图。非强连通图的极大强连通子图叫做强连通分量。10无向图,若图中任意两个顶点之间都有路径相通,则称此图为连通图;若无向图为非连通图,则图中各个极大连通子图称作此图的连通分量。BACDFEBACDFE11有向图,若任意两个顶点之间都存在一条有向路径,则称此有向图为强连通图。否则,其各个强连通子图称作它的强连通分量。ABECFABECF12生成树:假设一个连通图有n个顶点和e条边,其中n-1条边和n个顶点构成一个极小连通子图,称该极小连通子图为此连通图的生成树。在极小连通子图中增加一条边,则一定有环。在极小连通子图中去掉一条边,则成为非连通图。BACDFEBACDFE13有n个顶点,n-1条边的图必定是生成树吗?对非连通图,则称由各个连通分量的生成树的集合为此非连通图的生成森林。BACDFEBACDFE14图的存储结构在图的邻接矩阵表示中,有一个记录各个顶点信息的顶点表,还有一个表示各个顶点之间关系的邻接矩阵。设图A=(V,E)是一个有n个顶点的图,图的邻接矩阵是一个二维数组A.edge[n][n],定义:邻接矩阵(AdjacencyMatrix),),(,,]][[.否则或若0><1AEjiEjijiEdge15无向图的邻接矩阵是对称的;有向图的邻接矩阵可能是不对称的。01230101101001011010A.edge012000101010A.edge16在有向图中,统计第i行1的个数可得顶点i的出度,统计第j列1的个数可得顶点j的入度。在无向图中,统计第i行(列)1的个数可得顶点i的度。17186329542031068053290410A.edge网络的邻接矩阵jiji,ji,jiji,ji,jijiji若或且若或且若,)(,)(),,(]][[0EEEEWA.edge18#defineMaxValueInt_M...