欧拉回路的判定及求解
欧拉通路的判定
有向图:图连通,有一个顶点出度大入度1,有一个顶点入度大出度1,其余都是入度等于出度。
无向图:图连通,有两个奇数度顶点,其余都为偶数度顶点。
欧拉回路的判定
有向图:图连通,所有顶点入度等于出度。
无向图:图连通,所有顶点都是偶数度。
struct Edge
{
int v,next;
}edge[N];
int n,m,cnt;
int head[10005];
int vis[N];
void addedge(int u,int v)
{
edge[cnt].v = v;
edge[cnt].next = head[u];
head[u] = cnt++;
}
void DFS(int now)
{
for(int u=head[now];u!=-1;u=edge[u].next)
{
if(!vis[u])
{
vis[u] = 1; //标记当前边
DFS(edge[u].v);
}
}
printf("%d\n",now);
}