La mise en œuvre pour mon graphique est la table de hachage suivante:mise en œuvre de l'algorithme de Dijkstra en Java en utilisant le code de hachage
public class DiGraphHash{
private int numNodos, numArcos;
private TheList<Nodo> nodos[];
private TheList<Arco> arcos[];
private TheList<Arco> preds[];
}
où TheList, est une liste que je me suis fait.
Pour l'algorithme de Dijkstra, j'ai besoin de cartographier le coût de chaque nœud et le chemin pour atteindre ce nœud. J'ai les deux tableaux suivants:
int[] cost = new cost[num_nodes];
Nodo[] path = new Nodo[num_nodes];
Un autre détail important est que mes noeuds vont être les lettres A, B, C, D.
Alors, quand je la carte mes noeuds, par exemple disons que je dois assigner le coût au nœud A, comment puis-je trouver la position dans le tableau?
Je pensais à l'aide hashcode% array.length mais je ne sais pas si je vais obtenir des collisions (prendre en considération le fait que ce sera seulement 1 lettres char)
Je ne demande pas au sujet du code, et besoin de l'idée.
ok J'aime l'idée! Merci. et que diriez-vous: pour enregistrer le plus court "chemin" vers chaque noeud je vais faire un tableau de List, où la liste a Arco (Arcs en anglais) et ainsi je peux utiliser Hashcode pour trouver l'Arc d'un noeud – Alessandroempire
Cela peut sembler prometteur, vous pouvez également consulter les implémentations Java des autres: http://en.literateprograms.org/Dijkstra % 27s_algorithm_% 28Java% 29 –