from __future__ import print_functiondef printDist(dist, V):print("\nVertex Distance")for i in range(V):if dist[i] != float('inf') :print(i,"\t",int(dist[i]),end = "\t")else:print(i,"\t","INF",end="\t")print()def minDist(mdist, vset, V):minVal = float('inf')minInd = -1for i in range(V):if (not vset[i]) and mdist[i] < minVal :minInd = iminVal = mdist[i]return minInddef Dijkstra(graph, V, src):mdist=[float('inf') for i in range(V)]vset = [False for i in range(V)]mdist[src] = 0.0for i in range(V-1):u = minDist(mdist, vset, V)vset[u] = Truefor v in range(V):if (not vset[v]) and graph[u][v]!=float('inf') and mdist[u] + graph[u][v] < mdist[v]:mdist[v] = mdist[u] + graph[u][v]printDist(mdist, V)#MAINV = int(input("Enter number of vertices: "))E = int(input("Enter number of edges: "))graph = [[float('inf') for i in range(V)] for j in range(V)]for i in range(V):graph[i][i] = 0.0for i in range(E):print("\nEdge ",i+1)src = int(input("Enter source:"))dst = int(input("Enter destination:"))weight = float(input("Enter weight:"))graph[src][dst] = weightgsrc = int(input("\nEnter shortest path source:"))Dijkstra(graph, V, gsrc)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。