栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

寻找欧拉之旅

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

寻找欧拉之旅

这是您的算法失败的有效情况:

graph = [(1, 2), (2, 3), (3, 1), (3, 4), (4, 3)]

利用的力量

print
来找出
graph
和会发生什么
current_vertex

另一个提示:

else
向下移动,使其属于和,
for
并且在
for
循环不中断时执行。现在,它永远无法执行。 更正之后,算法当然仍然会失败。

当然,该算法仍然会失败。

当然,该算法仍然会失败。

请不要发表评论说代码不起作用。没有。即使下面的代码执行了OP的预期,该算法仍然会失败。关键是要表明OP的算法是错误的,而OP无法确定。为此,需要正确执行OP算法(请参见下文)。错误算法的正确实现仍然不是正确的解决方案。

很抱歉,通过写所有这些冗长的解释使这个答案更糟,但是人们仍然抱怨该代码不起作用(当然,这是要表明它是错误的)。他们也否决了这个答案,可能是因为他们希望能够复制代码作为解决方案。但这不是重点,重点是向OP证明他的算法有错误。

以下代码找不到欧拉之旅。 寻找其他地方复制代码以传递您的帮助!

def find_eulerian_tour(graph):    tour = []    current_vertex = graph[0][0]    tour.append(current_vertex)    while len(graph) > 0:        print(graph, current_vertex)        for edge in graph: if current_vertex in edge:     if edge[0] == current_vertex:         current_vertex = edge[1]     else:         current_vertex = edge[0]     graph.remove(edge)     tour.append(current_vertex)     break        else: # Edit to account for case no tour is possible return False    return tourgraph = [(1, 2), (2, 3), (3, 1), (3, 4), (4, 3)]print(find_eulerian_tour(graph))

输出:

[(1, 2), (2, 3), (3, 1), (3, 4), (4, 3)] 1[(2, 3), (3, 1), (3, 4), (4, 3)] 2[(3, 1), (3, 4), (4, 3)] 3[(3, 4), (4, 3)] 1False


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号