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

DFS Search on Undirected Graphs Algorithm : Design Analysis [16] In the last class… Directed Acyclic Graph Topological Order Critical Path Analysis Strongly Connected Component Strong Component and Condensation Leader of Strong Component The Algorihtm DFS Search on Undirected Graph Undirected and Symmetric Digraph UDF Search Skeleton Biconnected Components Articulation Points and Biconnectedness Biconnected Component Algorithm Analysis of the Algorithm Orientation of edges by DFS For an undirected graph, the depth-first search provides an orientation for each of its edges; they are oriented in the direction in which they are first encountered. Nontree edges in symmetric digraph Cross edge: not existing. Back edge: Back to the direct parent: second encounter Otherwise: first encounter Forward edge: always second encounter Modifications to the DFS Skeleton All the second encounter are bypassed. So, the only substantial modification is for the possible back edges leading to an ancestor, but not direct parent. (related technical processing is needed) DFS Skeleton for Undirected Graph int dfsSweep(IntList[] adjVertices,int n, …) int ans; Allocate color array and initialize to white For each vertex v of G, in some order if (color[v]==white) int vAns=dfs(adjVertices, color, v, -1, …); Process vAns // Continue loop return ans; DFS Skeleton for Undirected Graph int dfs(IntList[] adjVertices, int[] color, int v, int p, …) int w; IntList remAdj; int ans; color[v]=gray; Preorder processing of vertex v remAdj=adjVertices[v]; while (remAdj?nil) w=first(remAdj); if (color[w]==white) Exploratory processing for tree edge vw int wAns=dfs(adjVertices, color, w, v …); Backtrack processing for tree edge vw , using wAns else if (color[w]==gray w?p) Checking for nontree edge vw remAdj=rest(remAdj); Postorder processing

文档评论(0)

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

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

1亿VIP精品文档

相关文档