fleury 算法模版
来源:互联网 发布:linux close函数 编辑:程序博客网 时间:2024/05/21 13:29
上面是书上的定义,还是没怎么看懂啊~。
模版代码:
#include<bits/stdc++.h>using namespace std;const int maxn = 105;int n,m;bool edge[maxn][maxn];int start;//起点 int num;//奇度顶点的个数 int degree[maxn];//顶点的度 stack<int> st;void input(){int u,v;scanf("%d%d",&n,&m);for(int i = 0; i < m; i++){scanf("%d%d",&u,&v);edge[u][v] = edge[v][u] = 1;degree[u]++; degree[v]++;}num = 0; start = 1;for(int i = 1; i <= n; i++){if(degree[i]&1){start = i; num++;}}}void dfs(int s){st.push(s);for(int i = 1; i <= n; i++){if(edge[s][i] > 0){edge[s][i] = edge[i][s] = 0;dfs(i);break;}}}void fleury(int s){bool flag;st.push(s);while(!st.empty()){flag = 0;for(int i = 1; i <= n; i++){if(edge[st.top()][i] > 0){flag = 1; break;}}if(flag){int x = st.top();st.pop();dfs(x);}else{printf("%d ",st.top());st.pop();}}}void solve(){if(num == 0 || num == 2) fleury(start);else puts("No Euler path");}int main(){input();solve();return 0;}/*input:9 141 21 82 32 82 93 44 54 64 95 66 76 97 88 9output:1 8 9 6 7 8 2 9 4 6 5 4 3 2 1*/
0 0
- fleury 算法模版
- Fleury算法
- fleury算法
- Fleury算法模板
- Fleury算法求欧拉路径
- 图论:fleury算法
- Fleury 算法,求欧拉回路
- 欧拉路 (Fleury算法)
- Fleury算法求欧拉路径
- Fleury算法求欧拉路径
- Fleury算法求欧拉路径
- 欧拉回路Fleury算法
- Fleury (弗罗莱) 算法通俗解释
- Fleury算法求欧拉回路(一)
- Fleury算法求欧拉回路(二)
- Fleury(弗洛莱)算法实现
- fleury算法输出欧拉回路
- 欧拉回路&Fleury算法&实现
- Mongodb
- GitHub 配置及简单使用
- 欢迎使用CSDN-markdown编辑器
- Redis
- WuKong-HDU2833
- fleury 算法模版
- 如何学习Cocos2d-X
- 一个bitmap缓存的工具类
- 【Android 笔记】OnScrollListener详解
- 神奇的android:clipChildren属性
- 初识qemu
- java实现排序的几种方法
- git clone检出项目慢
- Android触摸事件分发机制