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

从边缘列表构建所有汉密尔顿路径

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

从边缘列表构建所有汉密尔顿路径

好的,由于要尝试使用的数据结构,我遇到了很多麻烦,因为原始连接图中有重复项。

更好的是使用这样的数据结构:

connections = {1: [4, 5], 2: [5], 3: [4], 4: [1, 3, 5], 5: [1, 2, 4]}

然后可以从https://www.python.org/doc/essays/graphs/使用以下两种算法

def find_path(graph, start, end, path=[]):    path = path + [start]    if start == end:        return path    if not graph.has_key(start):        return None    for node in graph[start]:        if node not in path: newpath = find_path(graph, node, end, path) if newpath: return newpath    return None

和完整的路径

def find_all_paths(graph, start, end, path=[]):    path = path + [start]    if start == end:        return [path]    if not graph.has_key(start):        return []    paths = []    for node in graph[start]:        if node not in path: newpaths = find_all_paths(graph, node, end, path) for newpath in newpaths:     paths.append(newpath)    return paths


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

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

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