¿Alguien sabe cómo diseñar cursos de lenguaje C por el camino más corto? QQ476566409! ! ! Muy urgente~~
Hola, esta es la solución del algoritmo D que escribí:
------------------------ - -
#include
#define MAX 200
#define N 5
void main()
p>{
int final[N]={0},D[N],G[N][N],P[N][N]={0},i, j,e,h,w,min;
for(i=0;i for(j=0;j G[i][j]=MAX; printf("Ingrese el número de líneas dirigidas:");scanf("%d",&e); printf("\nPor favor ingrese el principio y el final de la línea y la longitud:\n"); for(i=0;i { scanf("%d%d%d",&h,&w,&j);G[h][w]=j; } printf ("\nIngrese el punto inicial de la ruta:");scanf("%d%d",&h,&w); for(i=0;i { D[i]=G[h][i]; si(D[i] {P[ i][h]=1;P[i][i]=2;} } final[h]=1;D[h] =0; para(i=1;i {min=MAX; para(j=0;j if(!final[j]) if(D[j] {e=j;min= D[j];} final[e]=1; for(j=0;j if(!final [j]&&min+G[ e][j] {D[j]=min+G[e][j]; para( h=0;h P[j][h]=P[e][h]; P[j][j]=P[ j][e]+1 ; } } printf("\nLa distancia más corta es: %d",D[w]); printf("\nEl camino más corto es:"); for(j=1;j<=N;j++) for(i= 0;i if(P[w][i]==j) {printf("%d ",i);} printf(" \n"); } ----------------------- -