小白6.4.4欧拉回路
来源:互联网 发布:怎样进自己的淘宝店铺 编辑:程序博客网 时间:2024/05/01 21:54
欧拉回路最经典的是哥尼斯堡七桥问题。
首先,从一个节点出发,遍历与它有关联的边(节点),并且将这个节点标记。
void euler(int u){for(int i=0;i<n;++i){if(G[u][i]&&!vis[u][i]){vis[u][i]=vis[i][u]=1;euler(i);cout<<u<<' '<<i<<endl;}}}与拓扑排序中一样,这里G数组也是关联矩阵。在无向图中,关联矩阵是对称阵,所以在标记时
vis[u][i]=vis[i][u]=1;
代码如下
#include<iostream>using namespace std;const int maxn=100;int vis[maxn][maxn];int G[maxn][maxn];int n;void euler(int u){for(int i=0;i<n;++i){if(G[u][i]&&!vis[u][i]){vis[u][i]=vis[i][u]=1;euler(i);cout<<u<<' '<<i<<endl;}}}int main(){cin>>n;memset(vis,0,sizeof(vis));for(int i=0;i<n;++i){for(int t=i;t<n;++t){cin>>G[i][t];G[t][i]=G[i][t];}}int s;cin>>s;euler(s);return 0;}在输入的时候因为无向图是对称的,所以只用输入对称的一边,同时将另一边赋值就行。对于欧拉回路,输入的s只用是其中一个节点就行。如果是通路输入的s必须是起点,要不然有些路径必然便利不到。对于不是欧拉图的图,也可以输入,但是输出就只能是跟输入节点有关系的欧拉图。
- 小白6.4.4欧拉回路
- 欧拉回路的几个小概念
- HDU1878 欧拉回路【欧拉回路】
- 欧拉回路判断
- 欧拉回路 hdu1878
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路,欧拉路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 图论 欧拉回路
- zju2008欧拉回路
- ORA-39143ORA-39143: 转储文件 "C:\Users\tt\Desktop\dir_dp\11111.dmp" 可能是原始的导出转储文件
- [Unity 3D] Unity 3D中使用第三方DLL
- 《高效能程序员的修炼》读后感 By Yong Zhang
- C++之函数重载、重写、重定义的区别
- 2013----多校联合5
- 小白6.4.4欧拉回路
- 国外程序员推荐:每个程序员都应读的书
- 优化三要素 助力新站快速收录
- SubmitetoHermes.ksh
- 视频、音频打时间戳的方法
- js访问jsf的SelectOneRadio组件方式
- hive 数据倾斜总结
- Win32动态链接库和MFC 动态链接库
- Android中merge和include标签的使用