Código C++:
Ver original
Dijkstra{ bool enArbol [|V|] int distancia [|V|] int padre [|V|] para cada vertice v en V { enArbol [v] = false distancia [v] = infinito padre [v] = -1 } distancia [inicio] = 0 v = inicio mientras (enArbol[v]=false) { enArbol[v] = true para(cada vecino u de v && !enArbol[u]) { peso = M [v][u] si(distancia[u] > distancia[v] + peso) { distancia[u] = distancia [v] + peso padre [u] = v } } v=0 dist = infinito para(cada vertice u en V) { si(enArbol [u]=false) y (dis > distancia[u]) { dist = distancia[u] v=u } } } }