对于无向图:
欧拉路的起点和终点的度数为奇数,其余点的度数为偶数。
若起点和终点的度数也都为偶数,则为欧拉回路。
对于有向图:
欧拉路的起点出度比入度大 \(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;
}
标签:int,ed,出度,dfs,回路,欧拉
From: https://www.cnblogs.com/lzaqwq/p/17763334.html