标签:通路 2021.05 09 路径 算法 回路 顶点 欧拉
2021.05.09 关于欧拉回路为什么倒着输出
void dfs(int x){
for(int i=1;i<=150;i++){
if(dis[x][i]){
--dis[x][i];
--dis[i][x];
dfs(i);
}
}
ans[++top]=x;
}
// 洛谷1341
dfs寻找路径的时候本来就是 一级一级向下寻找,最后一级一级向上返回值 ,这时候,ans[]就变为从终点到起点的路径,因而需要倒着输出
定义
如果图G(有向图或者无向图)中所有边一次仅且一次行遍所有顶点的通路称作欧拉通路。
如果图G中所有边一次仅且一次行遍所有顶点的回路称作欧拉回路。
具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉通路但不具有欧拉回路的图称为半欧拉图。
性质
欧拉回路:一个欧拉回路,删掉一个点,仍然是一个欧拉回路。从一个欧拉回路拖走一个小欧拉回路,结果也是一个欧拉回路。
判定
欧拉回路:1: 图G是连通的,不能有孤立点存在。
2: 对于无向图来说度数为奇数的点个数为0;对于有向图来说每个点的入度必须等于出度。
欧拉通路:1: 图G是连通的,无孤立点存在。
2: 对于无向图来说,度数为奇数的的点可以有2个或者0个,并且这两个奇点其中一个为起点另外一个为终点。对于有向图来说,可以存在两个点,其入度不等于出度,其中一个入度比出度大1,为路径的起点;另外一个出度比入度大1,为路径的终点。
欧拉回路基本概念+判断+求解 - 王陸 - 博客园 (cnblogs.com)
fleury算法
桥:删掉该边后剩下所有的顶点不能联通
设图G中删去已走过的路径所剩下的图为图E,每次寻找E中的非桥的边,直到不能选择为止。
Fleury (弗罗莱) 算法通俗解释_guomutian911的专栏-CSDN博客_fleury算法
Hierholzer 算法
1.选择任一顶点为起点,遍历所有相邻边。
2.深度搜索,访问相邻顶点。将经过的边都删除。
3.如果当前顶点没有相邻边,则将顶点入栈。
4.栈中的顶点倒序输出,就是从起点出发的欧拉回路。
『图论』入门以及 Hierholzer 算法 - 知乎 (zhihu.com)
标签:通路,2021.05,09,路径,算法,回路,顶点,欧拉 来源: https://www.cnblogs.com/eleveni/p/15374913.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。