图(Graph)是一种较线性表与树更为复杂非线性结构在线.ppt

图(Graph)是一种较线性表与树更为复杂非线性结构在线.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图(Graph)是一种较线性表与树更为复杂非线性结构在线

图 ;基本定义和术语 ; 若(vi,vj)是一条无向边,则称顶点vi和vj互为邻接点(Adjacent),或称vi和vj相邻接;称(vi,vj)关联(Incident)于顶点vi和vj,或称(vi,vj)与顶点vi和vj相关联。如图7-1中G2,与顶点vl相邻接的顶点是v2,v3和v4,而关联于顶点v2的边是(vl,v2),(v2,v3)和(v2,v4)。若<vi,vj>是一条有向边,则称顶点vi邻接到vj,顶点vj邻接于顶点vi,并称边<vi,vj>关联于vi和vj或称<vi,vj>与顶点vi和vj相关联。如图7-1中Gl,关联于顶点v2的边是<v1,v2>,<v2,vl>和<v2,v3>。 无向图中顶点v的度(Degree)是关联于该顶点的边的数目,记为D(v)。若G为有向图,则把以顶点v为终点的边的数目,称为v的人度(1ndegree),记为ID(v);把以顶点v为始点的边的数目,称为v的出度(outdegree),记为OD(v);顶点v的度则定义为该顶点的入度和出度之和,即D(v)=ID(v)十OD(v)。 ; 在无向图G中,若存在一个顶点序列vp,vi1,vi2…,vin,vq,使得(vp,vil),(vi1,vi2),…,(vin,vq)均属于E(G),则称顶点vp到vq存在一条路径(Path)。若G是有向图,则路径也是有向的,它由E(G)中的有向边<vp,vil>,<vil,vi2>,…,<vin,vq>组成。路径长度定义为该路径上边的数目。若一条路径上除了vp和vq可以相同外;其余顶点均不相同,则称此路径为一条简单路径。起点和终点相同(vp=vq)的简单路径称为简单回路或简单环(Cycle)。例如,在图G2中顶点序列vl,v2,v3,v4是一条从顶点vl到顶点v4的长度为3的简单路径;顶点序列vl,v2,v4,vl,v3是一条从顶点vl到顶点v3的长度为4的路径,但不是简单路径;顶点序列vl,v2,v4,vl是一个长度为3的简单环。在有向图Gl中,顶点序列vl,v2,vl是一个长度为2的有向简单环。 ; 在一个有向图中,若存在一个顶点v,从该顶点有路径可以到达图中其它所有顶点,则称此有向图为有根图,v称作图的根。 在无向图G中,若从顶点vi到顶点vj有路径(当然从vj到vi也一定有路径),则称vi和vj是连通的。若V(G)中任意两个不同的顶点vi和vj都连通(即有路径),则称G为连通图(Connected Graph)。例如,图G2和G3是连通图。 无向图G的极大连通子图称为G的连通分量(connected Component)。显然,任何连通图的连通分量只有一个,即是其自身,而非连通的无向图有多个连通分量。例如,图7-4中的G4是非连通图,它有两个连通分量Hl和H2。 在有向图G中,若对于V(G)中任意两个不同的顶点vi和vj,都存在从vi到vj以及从vj到vi的路径,则称G是强连通图。有向图G的极大强连通子图称为G的强连通分量。显然,强连通图只有一个强连通分量,即是其自身。非强连通的有向图有多个强连通分量。例如图7-1中的Gl不是强连通图,因为v3到v2没有路径,但它有两个强连通分量, ;若将图的每条边都赋上一个权,则称这种带权图为网络(Network)。通常权是具有某种意义的数.;它们可以表示两个顶点之间的距离,耗费等 ;图的存储结构 ;用邻接矩阵表示法表示图,除了存储用于表示顶点间相邻关系的邻接矩阵外,通常还需要用一个顺序表来存储顶点信息。其形式说明如下: # define n 6 / * 图的顶点数 * / # define e 8 / * 图的边(弧)数 */ typedef char vextype; / * 顶点的数据类型 * / typedef float adjtype; / * 权值类型 * / typedef struct {vextype vexs[n]; adjtype arcs[n][n]; }graph; ; 若图中顶点信息是0至n-1的编号,则仅需令权值为1,存储一个邻接矩阵就可以表示图。若是网络,则adjtype为权的类型。由于无向图或无向网络的邻接矩阵是对称的,故可采用压缩存储的方法,仅存储下三角阵(不包括对角线上的元素)中的元素即可。显然,邻接矩阵表示法的空间复杂度S(n)=O(n2)。 CREATGRAPH(ga) /* 建立无向网络 * / Graph * ga; { int i,j,k; float w; for(i=0;i<n;i++) ga -vexs[i]=getchar();/* 读入顶点信息,建立顶点表 */ for(i=0;i<n;i++) for(j=0;j<n;j++) ga -arc

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档