香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2021-12-08 14:53 作者:admin610456


本文实例讲述了python/' target='_blank'>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, 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

找到最短路径:

def find_shortest_path(graph, start, end, 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, node, end, path)        if newpath:          if not shortest or len(newpath) < len(shortest):            shortest = newpath    return shortest

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

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)