import heapq def dijkstra(graph, start, end): # Priority queue: (cost, current_node) queue = [(0, start)] distances = {node: float('inf') for node in graph} distances[start] = 0 predecessors = {node: None for node in graph} while queue: current_cost, current_node = heapq.heappop(queue) if current_node == end: break for neighbor, cost in graph[current_node].items(): new_cost = current_cost + cost if new_cost < distances[neighbor]: distances[neighbor] = new_cost predecessors[neighbor] = current_node heapq.heappush(queue, (new_...
Posts
Showing posts from May, 2025