Posts

Showing posts from May, 2025
 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_...