C++ 给定一个有向图,以这样的方式确定每条边的方向,即存在一种方法,该方法可以精确地遍历所有边一次

C++ 给定一个有向图,以这样的方式确定每条边的方向,即存在一种方法,该方法可以精确地遍历所有边一次,c++,algorithm,data-structures,graph,graph-algorithm,C++,Algorithm,Data Structures,Graph,Graph Algorithm,我试图解决以下问题: 这是问题的编辑链接: 我的解决方案: 基本上,我们需要检查给定的图是否存在Euler回路,如果它是连通的,如果这两个条件都满足,那么,语句中这样的回路就存在了 在解决方案中,我检查了无向图组成euler回路所需的两个条件,并使用hierholzers算法打印了问题陈述中描述的回路,但由于某些原因,我的代码无法清除某些测试用例 有人能指出我在代码中缺少了什么条件吗?为什么不在adj1中添加b作为a的邻居?因为这是为了检查给定的图是否连通,因为我正在通过给定的有向边。你想找到无

我试图解决以下问题:

这是问题的编辑链接:

我的解决方案:

基本上,我们需要检查给定的图是否存在Euler回路,如果它是连通的,如果这两个条件都满足,那么,语句中这样的回路就存在了

在解决方案中,我检查了无向图组成euler回路所需的两个条件,并使用hierholzers算法打印了问题陈述中描述的回路,但由于某些原因,我的代码无法清除某些测试用例


有人能指出我在代码中缺少了什么条件吗?

为什么不在adj1中添加b作为a的邻居?因为这是为了检查给定的图是否连通,因为我正在通过给定的有向边。你想找到无向图的连通性,所以你需要边缘的两个副本,否则它将是错误的。我首先使用了无向边缘,但是使用定向边缘,它帮助清除了一个以前失败的测试用例。