欧拉回路

对于无向图:

欧拉路的起点和终点的度数为奇数,其余点的度数为偶数。

若起点和终点的度数也都为偶数,则为欧拉回路。

对于有向图:

欧拉路的起点出度比入度大 \(1\) ,终点的入度比出度大 \(1\) , 其余点出度和入度相等。

若起点和终点入度、出度相等,则为欧拉回路。

dfs求欧拉路

每次递归寻找第一个无边可走的节点,存到栈中。

最后倒序输出即可。

void dfs(int u)
{
	for(int i=h[u];~i;i=ne[i]){
		if(ed[i]||ed[i^1])continue;//不能重复走边
		ed[i]=true,ed[i^1]=true;
		int j=e[i];
		dfs(j);
	}
	ans[k++]=u;
}
posted @ 2023-10-13 21:43  lza0v0  阅读(28)  评论(0)    收藏  举报