欧拉回路的判定及求解

欧拉通路的判定

有向图:图连通,有一个顶点出度大入度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);
}
posted @ 2019-11-07 20:51  Cherish486  阅读(76)  评论(0编辑  收藏  举报