def floyd_warshall(n_v,graph):
A = graph
for k in range(n_v):
for i in range(n_v):
for j in range(n_v):
A[i][j]= min( A[i][j], A[i][k]+ A[k][j] )
print("\nThe Graph with All Shortest Paths ....\n")
print(A)
n_v = int(input("Enter number of Vertices :"))
n_e = int(input("Enter number of Edges :"))
# let 99999 be infinte
graph = [[99999 for i in range(n_v)] for j in range(n_v)]
for i in range(n_v):
for j in range(n_v):
if(i==j):
graph[i][j] = 0
break
for i in range(n_e):
x = int(input(f"Enter Source of Edge {i+1} :"))
y = int(input(f"Enter Destination of Edge {i+1}:"))
weight = int(input(f"Enter weight of Edge {i+1}:"))
graph[x-1][y-1] = weight
print("\nThe Entered Graph is ....")
print("Here 99999 is Infinte ....\n")
print(graph)
floyd_warshall(n_v,graph)
Comments