图论——欧拉回路
来源:互联网 发布:知秋一生所爱吉他谱 编辑:程序博客网 时间:2024/05/16 08:28
——写给自己记录的,没写完。
定义
欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,并且可以行遍图中每个顶点的回路。
一个图有欧拉回路的充分必要条件是这个图是连通的且每一个顶点的度都是偶数。
一个图有欧拉路径的充分必要条件这个图是连通的且仅有两个顶点的度是奇数。
欧拉图判断
无向图
//============================================================================// Name : euler.cpp// Author : SELOUS// Version :// Copyright : Your copyright notice// Description : Judge a Graph whether EULER graph or not//============================================================================#include <iostream>using namespace std;/* * 1.顶点度数为偶数 * 2.连通 */#define MAXNUM 20int father[MAXNUM],degree[MAXNUM];int root(int x){ if(x!=father[x]){ return root(father[x]); }else return x;}int main() { int n,m,start,end; cin>>n>>m; int i; for(i = 1;i <=m;i++){ cin>>start>>end; //记录节点的度数 degree[start]++; degree[end]++; //判断图的连通性,并查集 int root_start = root(start); int root_end = root(end); if(root_start!=root_end){ father[root_end]=root_start; } } for(i =1;i<=n;i++){ if(degree[i]%2!=0||father[i]!=father[1]){ break; } } cout<<"i="<<i<<endl; if(i>n){ cout<<1<<endl; } else cout<<0<<endl; return 0;}
有向图
欧拉图路径
欧拉回路属于无权图。
补充一个关于图的信息如何储存。
1.对于无权图,并且图的两个节点之间只有一条路径,那么可以使用数组g[u][v]储存,其中g[u][v]=1表示存在路径,=0表示不存在路径
2.对于有权图,并且图中的两个节点之间只有一个路径,那么和情况1的数据结构相同,但是g[u][v]储存两个节点的之间的权值
3.对于无权图,但是图中的节点之间有多条路径,那么可以使用g[u][p]=v;表示u通过路径p到达节点v。或者g[u][v]=num,num表示u->v的路径条数。
4.对于有权图,并且图中的节点之间有多条路径,那么可以使用vector连接矩阵储存图的信息。
记录点是否访问:visited[i];
记录边是否访问:前两个可以使用visited[u][v],第三个使用visited[p],第四个在node结构体中,添加变量bool visited。
0 0
- 图论——欧拉回路
- hdu1878—欧拉回路(欧拉回路判断)
- 图论 欧拉回路
- 图论 欧拉回路
- POJ2230 Watchcow——欧拉回路
- 欧拉回路——nyoj42
- 离散数学——欧拉回路
- 欧拉图——欧拉通路和欧拉回路
- 【图论】BFS+欧拉回路
- 图论 欧拉回路 uva10054
- HDU1878 欧拉回路【欧拉回路】
- NOJ1095奇特的图形——欧拉回路
- 杭电ACM1878——欧拉回路
- 杭电ACM3018——Ant Trip~~欧拉回路
- DFS应用——寻找欧拉回路
- 2016夏季练习——欧拉回路
- 欧拉回路——John's trip ( POJ 1041 )
- UVA10129 Play on Words —— 欧拉回路
- WebService(4):CXF
- 第五届省赛javaB组- 三羊献瑞
- C++11 标准新特性:Defaulted 和 Deleted 函数及constexpr
- Android 学习之Drawable-shape使用方法
- js正则实现去除字符串前后空格
- 图论——欧拉回路
- Linux 下的U盘挂载
- C、C++、Python、JavaScript、PHP、Java语法对比(纠正篇)
- 336. Palindrome Pairs
- 北航2009年计算机复试上机
- oracle 赋予用户权限
- WebService(5):
- CSS3-伸缩布局介绍
- python内置函数5-getattr()