第六章图 - 点.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章图图的定义和术语图图是由两个集合和组成的记为其中是顶点的非空有限集是边的有限集合边是顶点的无序对或有序对有向图有向图是由两个集合和组成的其中是顶点的非空有限集是有向边也称弧的有限集合弧是顶点的有序对记为是顶点为弧尾为弧头是的邻接点无向图无向图是由两个集合和组成的其中是顶点的非空有限集是边的有限集合边是顶点的无序对记为或并且和互为邻接点有向完全图个顶点的有向图最大弧数是无向完全图个顶点的无向图最大边数是权与图的边或弧相关的数叫网带权的图叫子图如果图和图满足则称为的子图顶点的度无向图中顶点的度

第六章 图 6.1 图的定义和术语 图(Graph)——图G是由两个集合V(G)和E(G)组成的,记为G=(V,E) 其中: V(G)是顶点的非空有限集 E(G)是边的有限集合,边是顶点的无序对或有序对 有向图——有向图G是由两个集合V(G)和E(G)组成的 其中:V(G)是顶点的非空有限集 E(G)是有向边(也称弧)的有限集合,弧是顶点的有序对,记为v,w,v,w是顶点,v为弧尾,w为弧头(w是v的邻接点) 无向图——无向图G是由两个集合V(G)和E(G)组成的 其中: V(G)是顶点的非空有限集 E(G)是边的有限集合,边是顶点的无序对,记为(v,w)或(w,v),并且(v,w)=(w,v) (v和w互为邻接点) 有向完全图——n个顶点的有向图最大弧数是n(n-1) 无向完全图——n个顶点的无向图最大边数是n(n-1)/2 权——与图的边或弧相关的数叫~ 网——带权的图叫~ 子图——如果图G(V,E)和图G‘(V’,E‘),满足: V’?V E’?E 则称G‘为G的子图 顶点的度 无向图中,顶点的度为与每个顶点相连的边数,记为TD(V) 有向图中,顶点的度分成入度与出度 入度:以该顶点为头的弧的数目,记为ID(V) 出度:以该顶点为尾的弧的数目,记为OD(V) 路径——路径是顶点的序列V={Vi0,Vi1,……Vin},满足(Vij-1,Vij)?E 或 Vij-1,Vij?E,(1j?n) 路径长度——沿路径边的数目或沿路径各边权值之和 回路——第一个顶点和最后一个顶点相同的路径叫~ 简单路径——序列中顶点不重复出现的路径叫~ 简单回路——除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路叫~ 连通——从顶点V到顶点W有一条路径,则说V和W是连通的 连通图——无向图中任意两个顶点都是连通的叫~ 连通分量——非连通图的极大连通子图。极大是指包含所有连通的顶点以及和这些顶点相关联的所有边。 强连通图——有向图中,如果对每一对Vi,Vj?V, Vi?Vj,从Vi到Vj 和从Vj到 Vi都存在路径,则称G是~ 强连通分量——非强连通图的极大强连通子图称作有向图的强连通分量 6.2 图的遍历—图的遍历是指从图中某一顶点出发,对图中所有顶点访问一次且仅访问一次。 深度优先遍历(DFS) 基本思想是:  1.从图中某个顶点v0出发,首先访问v0。  2. 找出刚访问过的顶点vi的第一个未被访问的邻接点, 然后访问该顶点。以该顶点为新顶点,重复本步骤,直到当前的顶点没有未被访问的邻接点为止。  3.返回前一个访问过的且仍有未被访问的邻接点的顶点, 找出并访问该顶点的下一个未被访问的邻接点,然后执行步骤(2)。 深度优先遍历算法 递归算法 6.3 图的存储结构(ADT P189) 网的邻接矩阵可定义为: 邻接表 实现:为图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的弧) 特点 n个顶点、e条边的无向图:存储空间n+2e个结点 无向图中顶点Vi的度为第i个单链表中的结点数 有向图中 顶点Vi的出度为第i个单链表中的结点个数 顶点Vi的入度为整个单链表中邻接点域值是i的结点个数 逆邻接表:有向图中对每个结点建立以Vi为头的弧的单链表 6.4 生成树 生成树 定义:所有顶点均由边连接在一起,但不存在回路的图叫~ 深度优先生成树与广度优先生成树 生成森林:非连通图每个连通分量的生成树一起组成非连通图的~ 说明 一个图可以有许多棵不同的生成树 所有生成树具有以下共同特点: 生成树的顶点个数与图的顶点个数相同 生成树是图的极小连通子图 一个有n个顶点的连通图的生成树有n-1条边 生成树中任意两个顶点间的路径是唯一的 在生成树中再加一条边必然形成回路 含n个顶点n-1条边的图不一定是生成树 最小生成树 问题提出 构造最小生成树方法 方法一:普里姆(Prim)算法 算法思想:设N=(V,{E})是连通网。令T=(U,TE)为N的最小生成树。 初始令U={u0},(u0?V), TE=? 在所有u?U,v?V-U的边(u,v)?E中,找一条代价最小的边(u0,v0) 将(u0,v0)并入集合TE,同时v0并入U 重复上述操作直至U=V为止,则T=(V,{TE})为N的最小生成树 算法实现:图用邻接矩阵表示 算法描述 算法评价:T(n)=O(n2) 方法二:克鲁斯卡尔(Kruskal)算法 算法思想:设连通网N=(V,{E}),令最小生成树 初始状态为只有n个顶点而无边的非连通图T=(V,{?}),每个顶点自成一个连通分量 在E中选取代价

文档评论(0)

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

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

1亿VIP精品文档

相关文档