0

基于标准定义,欧拉路径是图中的一条路径,它只访问每条边一次。

现在,我试图在有向图中找到欧拉路径。我知道欧拉电路的算法。如果一个图有欧拉回路,它就有欧拉路径,这似乎是微不足道的。 来源:geeksforgeeks

[图片来源:geeksforgeeks.org]

因此对于上述具有欧拉回路的有向图也具有欧拉路径。

现在,如果我删除一个边缘,让我们说从 4 到 0 它不再是欧拉电路。

  1. 如果从顶点 0 开始我的 DFS,我仍然有欧拉路径。
  2. 如果从顶点 3 开始,我没有欧拉路径

那么,有向图是否必须在欧拉回路中才能成为欧拉路径?我想,欧拉路径应该比欧拉电路限制更少。

是否有任何有向图可以是欧拉路径但不是欧拉回路。

4

3 回答 3

4

那么,有向图是否必须在欧拉回路中才能成为欧拉路径?

我认为,欧拉路径应该比欧拉电路的限制更少。

正确的

是否有任何有向图可以是欧拉路径但不是欧拉回路。

是的

我相信您的困惑源于这样一个事实:当您从不同节点开始对有向图进行 DFS 时,您可能会得到不同的结果,因为当您从不同节点开始时可能无法访问某些节点。这与欧拉路径/轨迹的定义无关。为了在有向图中“实现”对欧拉路径的搜索,您应该从每个节点运行 DFS - 并且只有当所有结果都返回 False(未找到欧拉路径)时,您才能确定没有欧拉路径. 如果存在欧拉循环,则必须有一个节点,您可以从该节点启动 DFS 并找到欧拉路径。

于 2014-12-20T21:40:10.727 回答
1

是的,有很多图可以是欧拉路径,但不是欧拉回路。就像你删除后的图表一样4->0

如果一个图有欧拉回路,就更容易找到欧拉路径,因为如果你从每个节点开始,你可以找到欧拉路径,因为它们都在回路中,但是如果你没有欧拉回路,你就无法开始从您希望找到欧拉路径的任何节点。因为只有一个节点将成为路径的起点,而选择任何其他节点可能会导致找不到路径。

一种简单的方法是从每个节点运行 dfs 并检查是否存在从其中任何一个节点开始的欧拉路径,这是效率最差的算法,因为它的复杂度为O( V 2 + E * V)

您可以在此处找到多种好方法。复杂度为O( V + E )V比以前的算法时间要好。

于 2014-12-21T07:50:42.163 回答
-1

图具有欧拉回路/路径的要求:

  • 电路(也算作路径):没有顶点的度数为奇数
  • 路径(但没有回路):两个顶点的度数为奇数;在这种情况下,路径将从奇数顶点之一开始并在另一个顶点结束
于 2016-12-20T19:33:07.503 回答