您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python数据结构之图的实现方法

5b51 2022/1/14 8:21:11 python 字数 2256 阅读 461 来源 www.jb51.cc/python

本文实例讲述了python数据结构之图的实现方法。分享给大家供大家参考。具体如下:

概述

本文实例讲述了python数据结构之图的实现方法分享给大家供大家参考。具体如下:

下面简要的介绍下:

比如有这么一张图:

    A -> B
    A -> C
    B -> C
    B -> D
    C -> D
    D -> C
    E -> F
    F -> C

可以用字典和列表来构建

graph = {'A': ['B','C'],'B': ['C','D'],'C': ['D'],'D': ['C'],'E': ['F'],'F': ['C']}

找到一条路径:

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,path)
        if newpath: return newpath
    return None

找到所有路径:

def find_all_paths(graph,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,path)
        for newpath in newpaths:
          paths.append(newpath)
    return paths

找到最短路径:

def find_shortest_path(graph,path=[]):
    path = path + [start]
    if start == end:
      return path
    if not graph.has_key(start):
      return None
    shortest = None
    for node in graph[start]:
      if node not in path:
        newpath = find_shortest_path(graph,path)
        if newpath:
          if not shortest or len(newpath) < len(shortest):
            shortest = newpath
    return shortest

希望本文所述对大家的Python程序设计有所帮助。

总结

以上是编程之家为你收集整理的python数据结构之图的实现方法全部内容,希望文章能够帮你解决python数据结构之图的实现方法所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶