欧拉回路(一笔画)
来源:互联网 发布:网络存储服务器作用 编辑:程序博客网 时间:2024/04/29 03:25
欧拉回路判断:
对于无向图:1.两个或没有奇点;2.图连通;
对于有向图:1. 两种 (1)一个点出度大于入度1且另一个点入度大于出度1; (2)入度都等于出度; 2.图连通;
判断图连通1.dfs;2.bfs;3.floodfill; 即从某个点出发能否把所有点都遍历到;
输出欧拉路径: 从上述任一奇点出发(若无奇点则任一点出发就好);
1) 随便找一条未走过的相通的边走,走一条就删去一条边,直到没有一条边能走,就push这个点到堆栈中,返回上一个点,然后重复操作1);
2) 输出堆栈内容即为答案;
这个是因为是随便选一条边走的,所以可能存在未走完所有边就回来的情况,所以对于每个点都要递归返回来看有没有另一条边可走;
代码实现(倒序输出路径的):
无向图:
void euler (int u){for(int v=0;v<n;v++)if((G[u][v]||G[v][u])&&!vis[u][v]){vis[u][v]=vis[v][u]=1;euler(v);printf("%c %c\n",u,v);}}有向图:
void euler (int u){for(int v=0;v<n;v++)if(G[u][v]&&!vis[u][v]){vis[u][v]=1;euler(v);printf("%c %c\n",u+'A',v+'A');}}
对于一些无法走完边的回路,如七桥问题,上述代码也能输出连通所有点但未走完所有边的欧拉回路;
0 0
- 欧拉回路(一笔画)
- 一笔画(欧拉回路)
- nyoj42 一笔画问题 (欧拉回路)
- 欧拉回路解决一笔画问题
- 一笔画问题 【欧拉回路】+【dfs】
- nyoj42一笔画问题 【欧拉回路】
- NOJ 42题 一笔画(欧拉回路)
- NYOJ42 一笔画问题 【欧拉回路】+【并查集】
- 数据结构:图论:欧拉回路!一笔画问题
- HDU 3018 Ant Trip(欧拉回路:一笔画问题)
- nyoj42一笔画问题(欧拉回路)
- NYOJ 42:一笔画问题【欧拉回路】
- HDU 3018 Ant Trip(欧拉回路一笔画问题)
- nyoj 42 一笔画问题《欧拉回路》
- hdu 3018 欧拉回路 一笔画问题
- NYOJ - 42 - 一笔画问题(欧拉回路,DFS)
- NYOJ—一笔画问题(欧拉回路)
- nyoj 42- 一笔画问题(欧拉回路)
- 动态规划入门
- android.intent.category.MONKEY
- 批量修改有那么简单吗?
- vue 组件记忆(1)
- GCC 编译优化选项解析
- 欧拉回路(一笔画)
- Android5.0之Activity的转场动画
- Android Studio安装已经下载好的zip插件
- Java 泛型小结
- 微调多层自编码算法
- LeetCode 246. Strobogrammatic Number
- linux 下安装mysql (压缩包版)
- html 物资 jQuery下拉框select美化
- 【SPOJ-GONE】G-One Numbers【数位DP】【记忆化搜索】【质数筛】