Ahora mismo tengo esto para buscar los vecinos, pero no funciona..
He hecho una matriz de adyacencia que marca 1 si estan conectados y 0 si no lo estan, luego pido un nodo de origen, y hago un for para que recorra toda la matriz de adyacencia y si encuentra uno que sea 1 que lo escriba en pantalla, pero no funciona...
Eso es para buscar los vecinos, no para el camino..
Alguna ayuda?
Código (c) [Seleccionar]
void inicializarGrafo(struct grafo *grafo) {
grafo->numNodos = 5;
strcpy(grafo->nombres[0], "Centro");
strcpy(grafo->nombres[1], "Ensanche");
strcpy(grafo->nombres[2], "Fuenfresca");
strcpy(grafo->nombres[3], "San Leon");
strcpy(grafo->nombres[4], "San Julian");
grafo->matriz[0][0]=0;
grafo->matriz[0][1]=1;
grafo->matriz[0][2]=0;
grafo->matriz[0][3]=1;
grafo->matriz[0][4]=1;
grafo->matriz[1][1]=0;
grafo->matriz[1][0]=1;
grafo->matriz[1][2]=1;
grafo->matriz[1][3]=0;
grafo->matriz[1][4]=1;
grafo->matriz[2][2]=0;
grafo->matriz[2][0]=0;
grafo->matriz[2][1]=1;
grafo->matriz[2][3]=1;
grafo->matriz[2][4]=1;
grafo->matriz[3][3]=0;
grafo->matriz[3][0]=1;
grafo->matriz[3][1]=0;
grafo->matriz[3][2]=1;
grafo->matriz[3][4]=1;
grafo->matriz[4][0]=1;
grafo->matriz[4][1]=1;
grafo->matriz[4][2]=1;
grafo->matriz[4][3]=1;
grafo->matriz[4][4]=0;
}
void buscarVecinos(struct grafo *grafo, int indiceNodo, char Nodo) {
int nodo_origen, i;
char nodo_origenl, nodo;
printf("Selecciona un nodo: \n 0.-Centro\n1.-Ensanche\n2.-Fuenfresca\n3.-San Leon\nSan Julian\n");
scanf("%d", &nodo_origen);
for (i=0;i==4;i++) {
if (grafo->matriz[nodo_origen][i]==1) {
nodo = *grafo->nombres[i];
nodo_origenl = *grafo->nombres[nodo_origen];
printf("%d es vecino de %d",nodo_origenl, nodo);
}
}
}
He hecho una matriz de adyacencia que marca 1 si estan conectados y 0 si no lo estan, luego pido un nodo de origen, y hago un for para que recorra toda la matriz de adyacencia y si encuentra uno que sea 1 que lo escriba en pantalla, pero no funciona...
Eso es para buscar los vecinos, no para el camino..
Alguna ayuda?