• Sábado 14 de Diciembre de 2024, 17:35

Autor Tema:  Algoritmo Dijkstra!!!  (Leído 2549 veces)

kino

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Algoritmo Dijkstra!!!
« en: Viernes 18 de Enero de 2008, 05:19 »
0
tengo implementado el algoritmo pero m funciona con algunos casos y con otros no... hay algun problema en el while y en algunos grafos con ciclos por ejemplo se queda en el bucle...ayuda!!!!

(la matriz de adyacencia esta almacnada en G[][])

void dijkstra(int s, int t)
{
        bool fijados[MAX_NODOS];
   int min,u,v,w;

     for (u=0; u<MAX_NODOS; u++) {
       distancia = 99999;
       fijados   = false;
     }
     distancia = 0;

     while (not fijados[t] ) {
       min = 99999;
       for (u=0; u <MAX_NODOS; u++)
         if (!fijados && distancia < min) {
           min=distancia; v=u;
         }
       fijados[v] = true;
       for (w=0;w<MAX_NODOS;w++)
         if ( (G[v][w]>0) && !fijados[w] && distancia[w] > distancia[v] + G[v][w])
           distancia[w] = distancia[v] + G[v][w];
     }
   }


gracias de antemano