def floyd_warshall(graph):
dist = {u: {v: float('inf') for v in graph} for u in graph}
for u in graph:
dist[u][u] = 0
for v, weight in graph[u]:
dist[u][v] = weight
for k in graph:
for i in graph:
for j in graph:
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])
return dist
graph = {
0: [(1, 3), (2, 8)],
1: [(3, 1)],
2: [(1, 4)],
3: [(0, 2)],}
dist = floyd_warshall(graph)
print("节点之间的最短路径:")
for u in dist:
for v in dist[u]:
print(f"从节点 {u} 到节点 {v} 的最短路径长度为: {dist[u][v]}")