所设计的程序能够通过编译,并能够实现从给定10个结点的图G的邻接矩阵A, 判断G是否存在欧拉回路,存在则输出True,否则输出False。
输入格式
首先输入图G的种类,无向图:输入1,有向图:输入2;然后输入图G的邻接矩阵A。
输出格式
输出True表示存在欧拉回路,False表示不存在欧拉回路。
判断图是否存在欧拉回路
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 神仙别闹 2021-12-27 12:23关注
#include <iostream> #include <vector> using namespace std; int n; void dfs(int start,vector <vector <int> > &juzhen,vector <int> &vis) { vis[start]=1; for(int j=1;j<=n;j++) { if(vis[j]==0&&juzhen[start][j]!=0) {//如果节点没有被访问过,并且两点之间存在边 dfs(j,juzhen,vis); } } } int main() { int m,x,y,num=0; cout<<"请输入节点个数:"; cin>>n; cout<<"请输入边的个数:"; cin>>m; vector <vector <int> > juzhen(n+1,vector <int> (n+1,0)); vector <int> vis(n+1,0); for(int i=1;i<=m;i++) { cin>>x>>y; juzhen[x][y]=juzhen[y][x]=1; } dfs(1,juzhen,vis); for(int i=1;i<=n;i++) { if(vis[i]==0) {//说明该图不是连通图,所以直接输出0返回 cout<<0<<endl; return 0; } } for(int i=1;i<=n;i++) { num=0;//num用来判断每个节点的度是否为偶数 for(int j=1;j<=n;j++) { if(juzhen[i][j]==1) num++; } if(num%2!=0) {//不是偶数,就输出0返回 cout<<0<<endl; return 0; } } cout<<1<<endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 8
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么