• Asignatura: Informática
  • Autor: cristo343pc1vk4
  • hace 8 años

Como hacer un grafo con matriz de adyacencia en C , ojala lo mejor explicado posible , gracias .

Respuestas

Respuesta dada por: Helpmeeeeee
1

Codigo:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>

int main(){

clrscr();

int i, a, cant, **p;

char *c, resp='s';

printf("Cantidad de nodos del grafo: ");

scanf("%d", &cant);

p=(int **)calloc(cant, sizeof(int*));

c=(char *)calloc(cant, sizeof(char));

if(c != NULL){

/*Aqui se introducen todos los nodos pegados, o sea

sin usar espacios entre ellos

*/

printf("\nIntroduzca todos los nodos en mayuscula: ");

scanf("%s", c);

if(strlen(c) > cant){

printf("\nCantidad de nodos fuera de limite");

}

else{

for (i=0; i<cant; i++){

for (a=0; a<cant; a++){

printf("\nHay camino de %c a %c s/n: ", c[i], c[a]);

fflush(stdin);

scanf("%c", &resp);

printf("%c", resp);

if (resp == 's' || resp == 'S'){

p[i][a] = 1;

printf("%d", p[i][a]);

}

else{

p[i][a] = 0;

printf("%d", p[i][a]);

}

}

printf("%s", "\n");

}

for (i=0; i<cant; i++){

for (a=0; a<cant; a++){

printf("%d", p[i][a]);

}

printf("%s", "\n");

}

}

}

else{

printf("\nNo hay espacio en memoria");

}

free(c);

free(p);

getch();

return 0;

}

Preguntas similares