Saltar al contenido

Ejemplo de código de cola de prioridad java del algoritmo dijkstra

Agradeceríamos tu ayuda para compartir nuestros escritos acerca de las ciencias informáticas.

Ejemplo: implementación de dijkstra con la ayuda de la cola de prioridad en python

import heapq


defcalculate_distances(graph, starting_vertex):
    distances =vertex:float('infinity')for vertex in graph
    distances[starting_vertex]=0

    pq =[(0, starting_vertex)]whilelen(pq)>0:
        current_distance, current_vertex = heapq.heappop(pq)# Nodes can get added to the priority queue multiple times. We only# process a vertex the first time we remove it from the priority queue.if current_distance > distances[current_vertex]:continuefor neighbor, weight in graph[current_vertex].items():
            distance = current_distance + weight

            # Only consider this new path if it's better than any path we've# already found.if distance < distances[neighbor]:
                distances[neighbor]= distance
                heapq.heappush(pq,(distance, neighbor))return distances


example_graph ='U':'V':2,'W':5,'X':1,'V':'U':2,'X':2,'W':3,'W':'V':3,'U':5,'X':3,'Y':1,'Z':5,'X':'U':1,'V':2,'W':3,'Y':1,'Y':'X':1,'W':1,'Z':1,'Z':'W':5,'Y':1,print(calculate_distances(example_graph,'X'))# => 'U': 1, 'W': 2, 'V': 2, 'Y': 1, 'X': 0, 'Z': 2

Acuérdate de que puedes permitirte decir .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *