数据结构之二图论高中计算机竞赛辅导范文.doc

数据结构之二图论高中计算机竞赛辅导范文.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构之二 第十三章 图 这一讲,我们来了解图及其图的概念。   在图结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。因此,图的应用极为广泛。如:电子线路分析、寻找最短路径、工程计划分析、统计力学、控制论等技术领域都把图结构作为解决问题的主要手段之一。   一、定义   (一)图   图G由两个集合V和E组成。V是一个有限的非空的顶点集合,E是边的集合。图1中G1、G2、G3就是三个图。                     图 1   图G1、G2中代表边的顶点偶数对是无序的,则称图G1、G2为无向图,边(Vi,Vj) (Vj,Vi)代表的是同一条边。 G3中代表边的顶点偶数对是有序的,则称图G3为有向图,有向图中的边又称为弧。弧(Vi,Vj)表示从顶点i指向顶点j,顶点Vi称为弧(Vi,Vj)的尾,Vj称为弧(Vi,Vj) (Vi,Vj)和(Vj,Vi)代表着两条不同的弧。 -1)个顶点之间都有边相连,则共有n(n-1)/2条边。这是任何n个顶点的无向图的最大边数。一个拥有n(n-1)/2条边的n个顶点的无向图称为无向完全图。如图13.11中的G1是有4   在一些实际应用问题中,图的边往往与具有一定意义的数相关,这种与图的边相关的数叫权,这个权,可以表示从一个顶点到另一个顶点的距离或花费的代价等等。 我们称边拥有权的图为网。   (二)邻接   若(V1,V2)是E(G)中的一条边,则称顶点V1和V2为相邻接的顶点,而称边(V1,V2)是依附于顶点V1和V2的边。 13.11的G2中,与V2顶点相邻接的顶点是V1、V4和V5。若(V1,V2)是有向图G中的一条弧,则称顶点V1邻接至顶点V2,顶点V2邻接至顶点V1,弧(V1,V2) V1和V2。   依附于顶点的边的数目称为该顶点的度。有向图中,把以顶点V 为头的弧的数目称作顶点V的入度,而把以V为尾的弧的数目称之为顶点V的出度,顶点V的出度与入度之和就是它的度。   在图G中,从顶点Vp到顶点Vq的路径是顶点序列(Vp,Vi1,Vi2,......,Vin,Vq),且( Vp,Vi1),(Vi1,Vi2),......,(Vin,Vq)是E(G)中的边。 G是有向图,则路径也是有向的,由弧(Vp,Vi1),(Vi1,Vi2),......,(Vin, Vq)组成。路径上的边数称为路径长度。在一条路径中,如果除了第一个顶点和最后一个顶点外,其余顶点都各不相同,则称这样的路径为简单路径。 13.11中,由边(V1,V2),(V2,V4),(V4,V3)构成从顶点V1到顶点V3的路径可以写成顶点序列(V1,V2,V4,V3)。路径(V1,V2,V4,V3)和(V1,V2,V4,V2)都是长度为3的路径,显然,前者是一条简单的路径,而后者则不是。   二、图的存储结构   表示图的存储结构有多种形式,我们只介绍其中常用的两种,即邻接矩阵表示法和邻接表表示法。   (一)邻接矩阵表示法   若某图G有n个顶点V1,V2,......,Vn,则其邻接矩阵是这样的一个n阶方阵: 1 (顶点Vi,Vj有相连) A(i,j)={ 0 (顶点Vi,Vj不相连) (或下三角矩阵)赋值即可。而有向图的邻接矩阵不一定是对称的。         Wij (顶点Vi,Vj有相连时的权值) A(i,j)={ 0 (顶点Vi,Vj不相连) --需要n×n个存储单元。当一个图的顶点数较多而边数较少时,这时对应的邻接矩阵为稀疏矩阵,这种存储结构浪费了许多存储单元,在这种情况下,也可采取图的另一种表示方法--邻接表表示法。   这种表示法是为图中的每一个顶点Vi建立一个链表,即把邻接矩阵中的n行表示成n个链表。对于无向图,第i个链表是把图中与顶点Vi相邻接的所有顶点链接在一起, Vi的边(见图13.12(a))。而有向图的第i Vi的所有顶点链接在一起,链表中的每个结点表示一条以顶点Vi为尾的弧(见图13.12(b))。链表的结构为,每个结点有两个域: --用来表示与顶点Vi相邻接的顶点序号; --用来指向依附于顶点Vi的另一条边或弧。                    图 2 图的邻接表表示法   对于一个有n个顶点和m条边的无向图,若采用这种存储表示法,需要n个头结点和2m个表结点,每个表结点有两个域(对于网则有三个)显然,在边稀疏的情况下,采用邻接表比邻接矩阵要省空间 三、图的搜索 1 深度优先搜索策略: 常用于搜索所有路径,其特点是搜索过程中发展结点的原则是某一方向能走下去,就一直走下去,并用栈记录路径。当无路可走时,要回溯到前一个 “岔路口”,换一个方向继续搜索,直到到达终点。 如果要搜索出全部

文档评论(0)

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

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

1亿VIP精品文档

相关文档