Prims algorithm
Wed Nov 06 2024 16:38:00 GMT+0000 (Coordinated Universal Time)
Saved by
@sagar123
import heapq
def tree(V, E, edges):
adj = [[] for _ in range(V)]
for i in range(E):
u, v, wt = edges[i]
adj[u].append((v, wt))
adj[v].append((u, wt))
pq = []
visited = [False] * V
res = 0
heapq.heappush(pq, (0, 0))
while pq:
wt, u = heapq.heappop(pq)
if visited[u]:
continue
res += wt
visited[u] = True
for v, weight in adj[u]:
if not visited[v]:
heapq.heappush(pq, (weight, v))
return res
# Take user input
V = int(input("Enter the number of vertices: "))
E = int(input("Enter the number of edges: "))
edges = []
for i in range(E):
u, v, wt = map(int, input(f"Enter edge {i + 1} (u v weight): ").split())
edges.append([u, v, wt])
# Function call and result output
print("Sum of weights of the Minimum Spanning Tree:", tree(V, E, edges))
content_copyCOPY
Comments