数据结构- 图PPT.ppt

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

重(双)连通图和关节点 若从一个连通图中删去任何一个顶点及其相关联的边,它仍为一个连通图的话,则该连通图被称为重(双)连通图。 问题: 若连通图中的某个顶点和其相关联的边被删去之后,该连通图被分割成两个或两个以上的连通分量,则称此顶点为关节点。 没有关节点的连通图为双连通图。 如何判别给定的连通图是否是双连通图? a h g c b f d e a b c d e f g h 1 2 3 4 5 6 7 8 3 3 1 1 1 1 1 1 例如:下列连通图中, 顶点 a 和顶点 c 是关节点 深度优先生成树 关节点有何特征? 假设从某个顶点V0出发对连通图进行深度优先搜索遍历,则可得到一棵深度优先生成树,树上包含图的所有顶点。 需借助图的深度优先生成树来分析。 若生成树的根结点,有两个或两个以上的分支,则此顶点(生成树的根)必为关节点; 对生成树上的任意一个“顶点”,若其某棵子树的根或子树中的其它“顶点”没有和其祖先相通的回边,则该“顶点”必为关节点。 对上述两个判定准则在算法中如何实现? 1) 设V0为深度优先遍历的出发点 p = G.vertices[0].firstarc; v = p-adjvex; DFSArticul(G, v); // 从第v顶点出发深度优先搜索 if (count G.vexnum) { // 生成树的根有至少两棵子树 printf (0, G.vertices[0].data); // 根是关节点 2) 定义函数: low(v) = Min{visited[v], low[w], visited[k] } 其中: 顶点w 是生成树上顶点v 的孩子; 顶点k 是生成树上和顶点v由回边 相联接的祖先; visited记录深度优先遍历时的访问次序 若对顶点v,在生成树上存在一个子树根w, 且 low[w] ≥ visited[v] 则顶点v为关节点。 对深度优先遍历算法作如下修改: 1。visited[v]的值改为遍历过程中顶点的访问次序count值; 2。遍历过程中求得 low[v]=Min{visited[v],low[w],visited[k]} 3。从子树遍历返回时, 判别low[w]≥visited[v]? for(p=G.vertices[v0].firstarc; p; p=p-nextarc) { } void DFSArticul(ALGraph G, int v0) { // 从第v0个顶点出发深度优先遍历图 G,查找并输出关节点 } // DFSArticul min =visited[v0] = ++count; // v0是第count个访问的顶点, 并设low[v0]的初值为min // 检查v0的每个邻接点 low[v0] = min; w = p-adjvex; // w为v0的邻接顶点 if (visited[w] == 0) { // w未曾被访问 DFSArticul(G, w); // 返回前求得low[w] } else // w是回边上的顶点 if (low[w] min) min = low[w]; if (low[w]=visited[v0]) printf(v0, G.vertices[v0].data); //输出关节点 if (visited[w] min) min = visited[w]; 7.6 两点之间的 最短路径问题 求从某个源点到其余各点的最短路径 每一对顶点之间的最短路径 求从源点到其余各点的最短路径的算法的基本思想: 依最短路径的长度递增的次序求得各条路径 源点 v1 … 其中,从源点到顶点v的最短路径是所有最短路径中长度最短者。 v2 在这条路径上,必定只含一条弧,并且这条弧的权值最小。 下一条路径长度次短的最短路径的特点: 路径长度最短的最短路径的特点: 它只可能有两种情况:或者是直接从源点到该点(只含一条弧); 或者是,从源点经过顶点v1,再到达该顶点(由两条弧组成)。 a b c h d e k f g 8 1 2 3 4

文档评论(0)

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

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

1亿VIP精品文档

相关文档