Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Dijkstra Errores

Estas en el tema de Dijkstra Errores en el foro de C/C++ en Foros del Web. hola a todos estoy descifrando un pseudocodigo de dijkstra que me dieron en la universidad pero me encuentro con errores lo ideal es que al ...
  #1 (permalink)  
Antiguo 02/06/2010, 20:49
Avatar de extremoo  
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
Pregunta Dijkstra Errores

hola a todos estoy descifrando un pseudocodigo de dijkstra que me dieron en la universidad pero me encuentro con errores lo ideal es que al final imprima el camino mas corto el codigo es el siguiente, la forma de entrada la agrego mas abajo.

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main ()
  6. {
  7.   int **M;
  8.   int vertices, caminos;
  9.   int cam1, cam2;
  10.   float  prob;
  11.   int principio, final;
  12.  
  13.   cin >> vertices;
  14.   cin >> caminos;
  15.  
  16.     for (int i = 0; i < caminos ; i++)
  17.     {
  18.       cin >> cam1;
  19.       cin >> cam2;
  20.       cin >> prob;
  21.     }
  22.     cin >> principio;
  23.     cin >> final;
  24.  
  25.     bool *enArbol;
  26.     int *distancia;
  27.     int *padre;
  28.     //for(cada vecino u de vertice)
  29.     {
  30.       enArbol   [vertices] = false;
  31.       distancia [vertices] = infinito;
  32.       padre     [vertices] = -1;
  33.     }
  34.     distancia[i]=0;
  35.     vertices = i;
  36.       while(enArbol [vertices] = false )
  37.       {
  38.         enArbol[vertices]=true;
  39.         //for(cada vecino u de vertice && !enArbol[u])
  40.         {
  41.           int costo = M[vertices][u];
  42.           if(distancia[u] > distancia [vertices] + costo)
  43.           {
  44.             distancia [u] = distancia [vertices] + costo;
  45.             padre     [u] = vertices;
  46.           }
  47.         }
  48.         vertices = 0;
  49.         int dist= infinito;
  50.         //for(cada vertice u en V)
  51.         {
  52.           if(enArbol[u]=false  && dist > distancia [u])
  53.           {
  54.           dist = distancia [u];
  55.           vertices = distancia[u];
  56.           }
  57.         }
  58.       }
  59.  
  60. cout <<""<<  <<endl;
  61. return 0
  62. }

Entrada
---------------


4
5
0 1 0.2
0 2 0.4
1 2 0.1
1 3 0.5
2 3 0.1
0 3

4 es la cantidad de nodos N
5 cantidad de caminos M
0 1 0.2 (desde el 0 al 1 distancia 0.2) asi con el resto hasta que sea < M
y al final leo desde donde hasta donde quiero llegar parto en 0 hasta llegar a 3


ERRORES:

ubuntu@ubuntu:~/daa$ make t
g++ t.cpp -o t
t.cpp: In function ‘int main()’:
t.cpp:31: error: ‘infinito’ was not declared in this scope
t.cpp:34: error: name lookup of ‘i’ changed for ISO ‘for’ scoping
t.cpp:34: note: (if you use ‘-fpermissive’ G++ will accept your code)
t.cpp:41: error: ‘u’ was not declared in this scope
t.cpp:49: error: ‘infinito’ was not declared in this scope
t.cpp:52: error: ‘u’ was not declared in this scope
t.cpp:60: error: expected primary-expression before ‘<<’ token
t.cpp:62: error: expected ‘;’ before ‘}’ token
make: *** [t] Error 1

es lo mas reducido en errores que pude llegar a tener cualquier ayuda es bienvenida.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.