Ceci est plus une question générale. J'ai une carte qui mappe le nom d'une ville à son nœud (contenant des informations de base telles que country, lat, long, etc.). Chaque nœud de ville a un tableau d'arêtes pointant vers des nœuds de destination. Le bord a un temps et un membre de coût. Je voudrais trouver le temps le plus court pour voyager entre deux nœuds, mais j'ai commencé à m'embrouiller sur la meilleure façon d'y arriver.Recherche du chemin le plus court entre les nœuds en utilisant Dijkstra et min heap C++
J'ai créé ma propre classe de segment de mémoire qui est basée sur un vecteur de nœuds de villes. Je suis en mesure de créer la carte ajouter les nœuds de la ville de la carte au tas min. J'ai écrit l'algorithme de dijkstra pour trouver le chemin le plus court et cela fonctionne pour certains chemins mais pas tous. Je crois c'est parce que quand je mets à jour le poids d'un nœud de ville pour l'algorithme de dijkstra, le tas n'est pas trié correctement. Une fois que je mets à jour le poids d'un nœud, comment suis-je censé ré-heapifier le tas pour que le poids le plus bas soit en haut?
Merci!