欧拉图

定义

通过图(无向图或有向图)中所有边且每边仅通过一次通路称为欧拉通路,相应的回路称为欧拉回路。

具有欧拉回路的图称为欧拉图(Euler Graph),具有欧拉通路而无欧拉回路的图称为半欧拉图。

一些概念性的东西

欧拉通路

通过图中每条边且只通过一次,并且经过每一顶点的通路。

    无向连通图G含有欧拉通路,当且仅当G有零个或两个奇数度的结点;

    有向连通图D含有欧拉通路,当且仅当该图为连通图且D中除两个结点外,其余每个结点的入度=出度,且此两点满足deg-(u)-deg+(v)=±1。

(起始点s的入度=出度-1,结束点t的出度=入度-1 或两个点的入度=出度)

即为:除2个端点外其余节点入度=出度;1个端点入度比出度大1;一个端点入度比出度小1 或 所有节点入度等于出度

欧拉回路

通过图中每条边且只通过一次,并且经过每一顶点的回路。

    无向连通图G是欧拉图,当且仅当G不含奇数度结点(G的所有结点度数为偶数);

    有向连通图D是欧拉图,当且仅当该图为连通图且D中每个结点的入度=出度

    一个非平凡连通图是欧拉图当且仅当它的每条边属于奇数个环。

如果图G是欧拉图且 H = G - uv,则H有奇数个u,v-迹仅在最后访问v;同时,在这一序列的u,v-迹中,不是路径的迹的条数是偶数。

!注意图中孤立点的问题。

算法

朴素DFS求解

一般这个就没有问题了。

例题:无序字母对

Fleury(弗罗莱)算法

例题:欧拉回路

代码还没有写出来。。。
 

转载于:https://www.cnblogs.com/J-william/p/6837708.html

你可能感兴趣的:(欧拉图)