日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python實現狄克斯特拉算法

瀏覽:131日期:2022-06-23 10:31:15
數據結構1、路由信息

dictRoute = {}dictRoute[nodeId] = {}dictRoute[nodeId][nebrId] = distance操作:①根據nodeId找到該node的路由信息②根據nebrId找到某一條路由的距離

2、節點信息

dictNode = {}dictNode[nodeId] = [shortDis, fatherId, bIsCheck]操作:①找到nodes中最短距離的節點②查找節點的shortDis,根據情況更新shortDis、fatherId③檢查過的節點,更新bIsCheck

功能實現

/* 找到最短距離節點的Id,已經檢查的不計算在內 */def FindShortNodeId(dictNode):return shortNodeId

/* dikstra算法流程 */1、找到最短距離節點Id,并標記已檢查過 (如果節點Id不存在,表示查找完成)2、得到最短距離節點的距離3、輪詢最短距離節點的鄰居節點4、計算鄰居節點的新距離、得到原最短距離,進行比較5、如果新距離 < 原距離,則更新鄰居節點最短距離概括為兩步:步驟1 (1)- 找到當前最短距離節點步驟2(2~5) - 更新最短距離節點鄰居節點信息

代碼實現

import osimport sys’’’信息輸入:1、節點數目、路由數目2、路由信息 3、開始節點、結束節點’’’nodeNum = 0 # 節點數目routeNum = 0 # 路由數目listRoute = [] # 臨時存儲輸入的路由信息listNodeId = []# 臨時存儲節點id nodeIdStart = ’’nodeIdEnd = ’’dictRoute = {} # 解析后的路由信息dictNode = {} # 節點信息# 輸入節點數目、路由數目strInput = input()list0 = strInput.split(’ ’)nodeNum = int(list0[0])routeNum = int(list0[1])# 輸入路由信息for index in range(routeNum): strInput = input() listRoute.append(strInput) # 輸入開始節點、結束節點strInput = input()list0 = strInput.split(’ ’)nodeIdStart = list0[0]nodeIdEnd = list0[1]# 解析得到節點IdlistNodeId.append(nodeIdStart)listNodeId.append(nodeIdEnd)for index in listRoute: list0 = index.split(’ ’) nodeIdA = list0[0] nodeIdB = list0[1] if nodeIdA not in listNodeId: listNodeId.append(nodeIdA) if nodeIdB not in listNodeId: listNodeId.append(nodeIdB) # 初始化路由信息字典、節點信息字典for nodeId in listNodeId: # 節點字典信息 dictNode[nodeId] = [10000, ’’, False] # 最短距離、父節點、是否檢查過 # 每個路由字典創建 dictRoute[nodeId] = {}dictNode[nodeIdStart][0] = 0# 初始化路由信息for index in listRoute: list0 = index.split(’ ’) nodeIdA = list0[0] nodeIdB = list0[1] dictRoute[nodeIdA][nodeIdB] = int(list0[2]) dictRoute[nodeIdB][nodeIdA] = int(list0[2]) # 打印輸入信息def PrintInputInfo(): print(’nodeNum routeNum:’) print(str(nodeNum) + ’ ’ + str(routeNum)) print(’nodeStart nodeEnd’) print(nodeIdStart+’ ’+nodeIdEnd) print(’route info:’) for nodeId in dictRoute.keys(): for nebrId in dictRoute[nodeId].keys(): print(nodeId+’->’+nebrId+’ = ’+str(dictRoute[nodeId][nebrId])) print(’node info:’) for nodeId in dictNode.keys(): print(nodeId+’:’+str(dictNode[nodeId][0])+’ ’+dictNode[nodeId][1]+’ ’+str(dictNode[nodeId][2]))#PrintInputInfo()’’’狄克斯特拉實現’’’# 找到最短距離節點iddef FindShortNodeId(dictNode): shortNodeId = ’’ shortDis = 10000 for nodeId in dictNode.keys(): if dictNode[nodeId][0] < shortDis and dictNode[nodeId][2] == False: shortNodeId = nodeId shortDis = dictNode[nodeId][0] return shortNodeId # 狄克斯特拉算法shortNodeId = FindShortNodeId(dictNode)while shortNodeId: if shortNodeId == nodeIdEnd: break; dictNode[shortNodeId][2] = True shortDis = dictNode[shortNodeId][0] for nebrId in dictRoute[shortNodeId].keys(): newDis = dictRoute[shortNodeId][nebrId] + shortDis if newDis < dictNode[nebrId][0]: dictNode[nebrId][0] = newDis dictNode[nebrId][1] = shortNodeId shortNodeId = FindShortNodeId(dictNode) # 打印結果listRst = []nodeId = nodeIdEndwhile nodeId: listRst.append(nodeId) nodeId = dictNode[nodeId][1]listRst.reverse()strRst = ’’for nodeId in listRst: if nodeId == listRst[-1]: strRst += nodeId else: strRst += nodeId + ’->’if dictNode[nodeIdEnd][1] == ’’: print(’cant reach ’+nodeIdEnd)else: print(strRst) print(dictNode[nodeIdEnd][0])測試用例及驗證

Case1輸入:6 41 2 21 3 42 5 35 6 22 6

python實現狄克斯特拉算法

輸出:

python實現狄克斯特拉算法

Case2輸入:4 5S A 6S B 2B A 3A E 1B E 5S E

python實現狄克斯特拉算法

輸出:

python實現狄克斯特拉算法

Case3(找不到終點)輸入:6 6S A 2S B 1A C 4A B 1B D 2C D 3S End

python實現狄克斯特拉算法

輸出:

python實現狄克斯特拉算法

Case4輸入:6 8S A 5S B 1A C 1A B 1B D 5C D 1D End 1C End 3S End

python實現狄克斯特拉算法

輸出:

python實現狄克斯特拉算法

以上就是python實現狄克斯特拉算法的詳細內容,更多關于python狄克斯特拉的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久免费av| 国产精品视频一区二区三区 | 美女网站视频一区| 久久中文字幕一区二区| 精品一二三区| 裤袜国产欧美精品一区| 日韩欧美网址| 久久蜜桃资源一区二区老牛| 欧美三级精品| 日韩成人精品一区| 麻豆mv在线观看| 99热精品久久| 91久久视频| 日韩三级一区| 欧美激情久久久久久久久久久| 国产中文欧美日韩在线 | 激情黄产视频在线免费观看| 成人三级高清视频在线看| 亚洲天堂免费电影| 亚洲精品电影| 日韩精品免费一区二区夜夜嗨| 国产精品久久久久久模特| 精品资源在线| 国产精品97| 日韩高清不卡在线| 狠狠久久伊人中文字幕| 免费污视频在线一区| 99热精品在线观看| 欧美亚洲色图校园春色| 精品色999| 蜜桃视频欧美| 日韩精品电影一区亚洲| 精品午夜av| 夜夜精品视频| 日本精品另类| 精品国产免费人成网站| 中文久久精品| 欧美日本久久| 亚洲美女久久精品| 免费人成在线不卡| 嫩呦国产一区二区三区av| 日韩精品久久久久久久电影99爱| 久久香蕉精品| 欧美1区二区| 尹人成人综合网| 青青国产精品| 精品日韩视频| 日本麻豆一区二区三区视频| 精品国产第一福利网站| 老色鬼久久亚洲一区二区| 亚洲资源网站| 老鸭窝一区二区久久精品| 免费在线观看一区| 不卡av一区二区| 亚洲精品麻豆| 国产一区三区在线播放| 免费人成网站在线观看欧美高清| 国产专区精品| 亚洲色图综合| av综合电影网站| 日本va欧美va瓶| 成人羞羞视频播放网站| 欧美日本一区| 九色精品91| 免费视频一区二区三区在线观看| 欧美另类综合| 日本一二区不卡| 男人天堂欧美日韩| 亚洲黄色免费av| 人人爱人人干婷婷丁香亚洲| 欧美日韩一二三四| 久久99久久人婷婷精品综合| 日韩在线a电影| 日韩在线观看不卡| 久久国产欧美日韩精品| 午夜日韩在线| 高清在线一区| 国产亚洲电影| 久久国产成人| 久久人人99| 色一区二区三区四区| 97久久中文字幕| 亚洲精品在线观看91| 成人一二三区| 国产午夜久久av| 亚洲字幕久久| 黑丝一区二区三区| 一区二区精品伦理...| 国产精品xxx在线观看| 男人的天堂亚洲一区| 在线手机中文字幕| 国产精品一站二站| 亚洲精品麻豆| 蜜臀久久99精品久久久久宅男 | 国产精品羞羞答答在线观看| 影音先锋久久精品| 国产在线日韩| 中文字幕成在线观看| 另类欧美日韩国产在线| 日韩精品一区二区三区av| 伊人影院久久| 久久亚洲精品中文字幕蜜潮电影| 韩国一区二区三区视频| 美日韩一区二区三区| 国产日韩欧美中文在线| 日韩欧美2区| 五月亚洲婷婷 | 久久免费影院| 国产精品最新自拍| 欧美亚洲二区| 久久国产三级精品| 欧美一级网址| 欧美天堂在线| 国产欧美日韩精品一区二区免费 | 国产v日韩v欧美v| 欧美激情91| 麻豆精品视频在线观看视频| 国产精品日本一区二区不卡视频 | 免费在线看一区| 日韩专区欧美专区| 亚洲综合图色| 日本不卡一二三区黄网| 亚洲精品护士| 日韩精品视频网站| 欧美在线观看天堂一区二区三区| 亚洲aa在线| 日韩精品久久理论片| 日韩不卡在线观看日韩不卡视频| 涩涩涩久久久成人精品| 日韩av中文字幕一区二区| 奇米亚洲欧美| 麻豆一区二区三区| 国产96在线亚洲| 久久婷婷激情| 在线看片不卡| 免费人成黄页网站在线一区二区| 蜜桃av一区二区在线观看| 免费看精品久久片| 亚洲三级av| 国产精品porn| 黄色aa久久| 尤物精品在线| 亚洲2区在线| 卡一卡二国产精品| 亚洲一级少妇| 日韩视频二区| 亚洲2区在线| 国产日韩高清一区二区三区在线| 国产精品地址| 中文av在线全新| 日韩视频一区| 青青国产91久久久久久| 卡一卡二国产精品| 99久久精品费精品国产| 视频一区在线播放| 欧美日韩午夜电影网| 久久伊人国产| 国内精品99| 天堂久久av| 精品久久电影| 亚洲免费精品| 国产精品亚洲人成在99www| 成人午夜精品| 蜜桃传媒麻豆第一区在线观看| 国产精品极品国产中出| 日韩欧美中文| 蜜桃一区二区三区在线| 欧美黑人巨大videos精品| 成人羞羞视频在线看网址| 三级在线观看一区二区| 麻豆极品一区二区三区| 欧美高清一区| 国产欧美日韩精品高清二区综合区| 日韩影院二区| 日韩激情精品| 91麻豆国产自产在线观看亚洲| 日韩午夜在线| 美女久久久久久 | 久久亚洲国产| 青青国产精品| 精品三级久久| 亚洲色图国产| 久久青青视频| 日韩精品免费一区二区夜夜嗨| av综合电影网站| 日韩中出av| 91精品国产自产在线观看永久∴| 日本中文字幕一区二区视频| 日本韩国欧美超级黄在线观看| 日韩国产在线观看一区| 999视频精品| 国产日产精品_国产精品毛片 | 视频一区中文| 国产精品黄色片| 欧美专区一区二区三区| 国产va免费精品观看精品视频| 中文无码日韩欧| 99久久夜色精品国产亚洲狼| 国产精品成人3p一区二区三区| 亚洲免费婷婷|