欧拉回路
来源:互联网 发布:数据库无法登陆 编辑:程序博客网 时间:2024/04/27 17:11
#include<iostream>#include<vector>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;const unsigned MaxJunc = 45;const unsigned MaxStreet = 1995;unsigned graph[MaxJunc][MaxStreet];unsigned stack[MaxStreet];unsigned juncDegree[MaxJunc];bool hasVisited[MaxStreet];unsigned top, maxStreetNo;void Euler(int s){int i;for (i = 1; i <= maxStreetNo; i++){if (graph[s][i] && !hasVisited[i]){hasVisited[i] = true; Euler(graph[s][i]); stack[top++] = i;}}}int main(){unsigned home;unsigned x, y, z;int i;while (1){memset(graph, 0, sizeof(unsigned)*MaxJunc*MaxStreet);memset(stack, 0, sizeof(unsigned)*MaxStreet);memset(juncDegree, 0, sizeof(unsigned)*MaxJunc);memset(hasVisited, false, sizeof(bool)*MaxStreet);maxStreetNo = 0;top = 0;cin >> x >> y;home = min(x, y);if (x == 0 && y == 0)break;while (x != 0 && y != 0){cin >> z;graph[x][z] = y;juncDegree[x]++;graph[y][z] = x;juncDegree[y]++;maxStreetNo = max(maxStreetNo, z);cin >> x >> y;}for (i = 1; i < MaxJunc;++i)if (juncDegree[i] % 2)break;if (i < MaxJunc){cout << "Round trip does not exit." << endl;}else{Euler(home);for (i = top - 1; i >= 0; i--)cout << stack[i] << " ";cout << endl;}}return 0;}
0 0
- HDU1878 欧拉回路【欧拉回路】
- 欧拉回路判断
- 欧拉回路 hdu1878
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路,欧拉路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 图论 欧拉回路
- zju2008欧拉回路
- 欧拉回路
- hdu1878欧拉回路
- ios开发问题小结
- 淘宝应对"双11"的技术架构分析
- 指针和引用操作符的区别
- Windows的窗口和视口
- Compile FFmpeg on CentOS / RHEL / Fedora
- 欧拉回路
- C++中定义类的三种方式
- 谈谈php变量作用域
- mysql 让空值用0补充的函数IFNULL(a,0)
- Tomcat启动错误:java.lang.OutOfMemoryError
- 几种排序的总结
- C++ wstring string char* wchar_t相互转换
- Android-获取屏幕分辨率
- 诡异的php变量名