其他分享
首页 > 其他分享> > 2021.05.09 欧拉回路及欧拉通路

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)

欧拉图及欧拉回路 - 知乎 (zhihu.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