ACM程序设计剖析.pptVIP

  • 6
  • 0
  • 约2.37千字
  • 约 23页
  • 2016-12-02 发布于湖北
  • 举报
ACM程序设计 第十九讲 图的连通性问题 无向图 有向图 无向图 连通分量 欧拉回路(通路) Hamilton回路(通路) 连通分量 若图G(V,E)的子图G(V,E)满足对任意v1,v2属于V,存在一条路径使得v1可达v2 性质:一个无向图可以划分为若干个连通分量 算法1 并查集 复杂度O(|E|) init_set(|V|); for each (u,v) in E union(u,v); //条件find(a)==find(b)说明a,b属于同一个连通分量 特点:依赖并查集 连通分量 算法2 深度搜索 时间复杂度O(|E|) dfs(u){ vis[u]=eid; for each (u,v) in E if(!vis[v])dfs(v); } memset(vis,0,sizeof(vis)); for each v in V{ if(!vis[v]){ ++eid;dfs(v);} } 特点:空间复杂度比较高 欧拉回路(通路) 图G的一个回路(通路),恰好经过图G的每一条边一次 图G有欧拉回路的充要条件: 图G是连通图 任意点度数为偶数 图G有欧拉通路的充要条件: 图G是连通图 奇度数的顶点数0个或2个 Fleury算法 判断图是否为Euler图 选择出度大于入度的那个点(没有则任选一点)为起点搜索Euler路 采用DF

文档评论(0)

1亿VIP精品文档

相关文档