亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python數(shù)據(jù)結構之圖的實現(xiàn)方法

 更新時間:2015年07月08日 14:36:51   作者:yupeng  
這篇文章主要介紹了python數(shù)據(jù)結構之圖的實現(xiàn)方法,實例分析了Python圖的表示方法與常用尋路算法的實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了python數(shù)據(jù)結構之圖的實現(xiàn)方法。分享給大家供大家參考。具體如下:

下面簡要的介紹下:

比如有這么一張圖:

    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程序設計有所幫助。

相關文章

  • Python調用實現(xiàn)最小二乘法的方法詳解

    Python調用實現(xiàn)最小二乘法的方法詳解

    所謂線性最小二乘法,可以理解為是解方程的延續(xù),區(qū)別在于,當未知量遠小于方程數(shù)的時候,將得到一個無解的問題。本文主要和大家分享Python調用實現(xiàn)最小二乘法的方法,需要的可以參考一下
    2023-04-04
  • python可視化大屏庫big_screen示例詳解

    python可視化大屏庫big_screen示例詳解

    提到數(shù)據(jù)可視化,我們會想到 Plotly、Matplotlib、Pyecharts等可視化庫,或者一些商用軟件Tableau、FineBI等等。如果你希望操作更簡單、展現(xiàn)效果更強大,那么這款工具 big_screen 更適合
    2021-11-11
  • Python實用小技巧之判斷輸入是否為漢字/英文/數(shù)字

    Python實用小技巧之判斷輸入是否為漢字/英文/數(shù)字

    這篇文章主要給大家介紹了關于Python實用小技巧之判斷輸入是否為漢字/英文/數(shù)字的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-06-06
  • 幾個關于python  Pdf 技巧的分享

    幾個關于python  Pdf 技巧的分享

    這篇文章主要介紹了python使用技巧Pdf的詳細內容,PyPDF2是一個純Python的開源庫,能夠分割或合并PDF文件,也可以裁剪或轉換PDF文件中的頁面,下面關于文章主題內容將詳細介紹,需要的小伙伴可以參考一下
    2022-02-02
  • 簡述Python中的面向對象編程的概念

    簡述Python中的面向對象編程的概念

    這篇文章主要介紹了簡述Python中的面向對象編程的概念,面向對象編程是Python的重要特性,需要的朋友可以參考下
    2015-04-04
  • Python使用cx_Oracle模塊將oracle中數(shù)據(jù)導出到csv文件的方法

    Python使用cx_Oracle模塊將oracle中數(shù)據(jù)導出到csv文件的方法

    這篇文章主要介紹了Python使用cx_Oracle模塊將oracle中數(shù)據(jù)導出到csv文件的方法,涉及Python中cx_Oracle模塊與csv模塊操作Oracle數(shù)據(jù)庫及csv文件的相關技巧,需要的朋友可以參考下
    2015-05-05
  • Python函數(shù)的嵌套詳解

    Python函數(shù)的嵌套詳解

    這篇文章主要為大家介紹了Python函數(shù)的嵌套,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式

    Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式

    這篇文章主要介紹了Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 詳解Python Socket網(wǎng)絡編程

    詳解Python Socket網(wǎng)絡編程

    這篇文章主要為大家介紹了Python Socket網(wǎng)絡編程,主要介紹使用 Python 進行 TCP Socket網(wǎng)絡編程
    2016-01-01
  • Flask中提供靜態(tài)文件的實例講解

    Flask中提供靜態(tài)文件的實例講解

    在本篇文章里小編給大家分享的是一篇關于Flask中提供靜態(tài)文件的實例及相關知識點詳解,有興趣的朋友們可以跟著學習下。
    2021-12-12

最新評論