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

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

python實現狄克斯特拉算法

瀏覽:128日期: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久久,三上悠亚国产精品一区二区三区
欧美亚洲一区二区三区| 亚洲精品网址| 视频一区免费在线观看| 婷婷色综合网| 国产精品免费看| 免费一区二区视频| 三级在线观看一区二区| 爽好多水快深点欧美视频| 日韩视频一区二区三区在线播放免费观看| 欧美午夜精彩| 亚洲精品1区| 免费不卡在线观看| 热久久免费视频| 亚洲+小说+欧美+激情+另类| 日韩和欧美的一区| 国产精品www994| 国产精品最新| 91一区二区三区四区| 欧美色图一区| 蜜臀精品久久久久久蜜臀| 日韩av一区二区三区| 久久中文精品| 99精品在线观看| 日韩午夜黄色| 日本亚洲欧美天堂免费| 欧美日韩精品一区二区三区视频| 国产探花在线精品一区二区| 精品一区二区三区免费看 | 麻豆精品久久久| 国产一区二区三区精品在线观看| 精品国产亚洲日本| 欧美日韩国产在线一区| 亚洲精品乱码日韩| 你懂的国产精品| 久久视频一区| 视频一区在线视频| 国产精品亲子伦av一区二区三区| 日本蜜桃在线观看视频| 免费看的黄色欧美网站| 国产调教精品| 日韩电影二区| 免播放器亚洲| 国产精品videossex久久发布| 日韩在线观看一区| 欧美精品一区二区三区精品| 蘑菇福利视频一区播放| 国产日韩在线观看视频| 伊人久久在线| 亚洲一级淫片| 四季av一区二区凹凸精品| 9国产精品视频| 欧美日一区二区在线观看| 国产成人精品福利| 亚洲欧美日韩视频二区| 国产精品xxx在线观看| 欧美日韩一区二区三区视频播放| 日韩激情一区二区| 亚洲天堂免费电影| 天堂va欧美ⅴa亚洲va一国产| 国产成人精选| 日韩视频二区| 精品美女视频| 婷婷综合一区| 亚洲高清成人| 国产欧美日韩在线观看视频| 亚洲欧美综合| 久久精品日韩欧美| 亚洲久久视频| 人人香蕉久久| 91精品国产自产精品男人的天堂| 亚洲高清激情| 麻豆一区二区三| 久久亚洲一区| 日韩高清不卡| 国产激情一区| 久久国产精品亚洲77777| 国产资源在线观看入口av| 日韩av三区| 欧美一区=区| 欧美一区二区三区高清视频| 精品福利久久久| 日韩欧美四区| 日韩视频一区二区三区在线播放免费观看| 麻豆国产精品777777在线| 综合欧美精品| 自由日本语亚洲人高潮| 国产一区二区三区视频在线| 国产精品chinese| 只有精品亚洲| 欧美高清一区| 久久久久久久欧美精品| 麻豆网站免费在线观看| 国产日韩一区二区三区在线| 六月天综合网| 欧美日韩四区| 久久久精品久久久久久96 | 国产精品视频一区二区三区| 久久成人国产| 国产一区久久| 久久久久国产精品一区三寸| 精品久久91| 国产精品地址| 国产亚洲第一伦理第一区| 日本亚洲欧美天堂免费| 亚洲天堂av资源在线观看| 99香蕉国产精品偷在线观看| 美女毛片一区二区三区四区| 国产成人免费| 国产在线不卡一区二区三区| 国产精品尤物| 国产视频一区二区在线播放| 日韩1区2区3区| 天堂成人免费av电影一区| 亚洲国产一区二区在线观看 | 久久精品国产99| 国产精品一区二区三区av麻 | 国产极品一区| 国产美女亚洲精品7777| 91亚洲精品视频在线观看| 亚洲欧洲国产精品一区| 国产亚洲欧洲| 丝袜美腿亚洲一区| 国产精品97| 宅男在线一区| 成人av动漫在线观看| 一区在线免费观看| 欧美综合国产| 男人的天堂亚洲一区| 亚洲开心激情| 97成人在线| 国产精品jk白丝蜜臀av小说| 欧美aaaaaa午夜精品| 欧美a在线观看| 国产粉嫩在线观看| 久久三级福利| 亚洲欧美日本日韩| 伊人久久亚洲| 深夜福利亚洲| 国产欧美三级| 精品香蕉视频| 久久蜜桃精品| 香蕉久久夜色精品国产| 亚洲欧洲美洲国产香蕉| 91麻豆精品激情在线观看最新| 国产日产精品_国产精品毛片| 久久精品国产久精国产| 日韩成人亚洲| 先锋亚洲精品| 欧美亚洲二区| 国产成人精品亚洲线观看 | 国产精品99久久免费观看| 国产精品久久久久久久久久久久久久久 | 国产女人18毛片水真多18精品| 亚洲午夜在线| 国产婷婷精品| 91九色综合| 精品国产一区二区三区性色av| 国产一区二区三区日韩精品| 亚洲一级高清| 亚洲精品影视| 欧美1区2区3| 久久精品中文| 综合欧美精品| 国产精品magnet| 久久久成人网| 亚洲精品福利| 精品国产精品国产偷麻豆| 99免费精品| 日本麻豆一区二区三区视频| 精品国产免费人成网站| 国产精品色网| 国产剧情一区二区在线观看| 日韩在线中文| 日欧美一区二区| 国产va在线视频| 另类国产ts人妖高潮视频| 欧美国产免费| 黄色日韩在线| 久久精品亚洲一区二区| 亚洲香蕉网站| 国产女人18毛片水真多18精品| 蜜桃成人精品| 青青草国产精品亚洲专区无| 午夜欧美巨大性欧美巨大| 蜜桃久久精品一区二区| 精品三级国产| 在线亚洲观看| 国产伊人久久| 亚洲色图综合| 理论片午夜视频在线观看| 亚洲视频国产| 中文一区一区三区高中清不卡免费| 中文字幕一区二区三区在线视频| 国产黄大片在线观看| 婷婷久久免费视频| 蜜桃成人av| 精品视频一区二区三区在线观看 | 免费国产自久久久久三四区久久 | 日韩精品福利一区二区三区| 少妇久久久久|