johnny
2006-06-19 14:08:13 UTC
Hola. ME gustaria tener algo de codigo par aimplementar grafos en C.
Tengo algo de codigo:
#define MAX_NODOS 10
typedef struct tipo_arco
{
int existe;
int peso;
}arco;
typedef struct _estructura
{
char matrizN[MAX_NODOS];
arco matrizA[MAX_NODOS][MAX_NODOS];
}estructura;
int main(int argc, char* argv[])
{
estructura *grafo;
grafo=(estructura*) calloc(1,sizeof(estructura));
memset(grafo->matrizA,0,sizeof(grafo->matrizA));
grafo->matrizA[0][0].existe=1;
return 0;
}
Como veis corresponde a la matriz de adyacencia. ¿ Es correcto ? ¿ Como
implementar la funcion de añadir un arco ? ¿ Seria simplemente añadir la
informacion correspondiente en la matriz de arcos ?
¿ Que metodos es normal implementar ? ¿ Recorrido en amplitud/profundidad ?
¿ Como podria implementar lista de adyacencia en lugar de matriz ?
gracias
Tengo algo de codigo:
#define MAX_NODOS 10
typedef struct tipo_arco
{
int existe;
int peso;
}arco;
typedef struct _estructura
{
char matrizN[MAX_NODOS];
arco matrizA[MAX_NODOS][MAX_NODOS];
}estructura;
int main(int argc, char* argv[])
{
estructura *grafo;
grafo=(estructura*) calloc(1,sizeof(estructura));
memset(grafo->matrizA,0,sizeof(grafo->matrizA));
grafo->matrizA[0][0].existe=1;
return 0;
}
Como veis corresponde a la matriz de adyacencia. ¿ Es correcto ? ¿ Como
implementar la funcion de añadir un arco ? ¿ Seria simplemente añadir la
informacion correspondiente en la matriz de arcos ?
¿ Que metodos es normal implementar ? ¿ Recorrido en amplitud/profundidad ?
¿ Como podria implementar lista de adyacencia en lugar de matriz ?
gracias