Dopesaurio

Untitled

Oct 6th, 2022
652
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. void path(int **,int *,int,int);
  2. path(cost,dist,tam,v-1);
  3. void path(int **cost,int *dist,int tam,int v){
  4.     int u,w,i,num,s[tam],min;
  5.     for(i=0;i<tam;i++){
  6.         s[i]=0;
  7.         dist[i]=cost[v][i];
  8.         printf("costo de operacion del nodo origen =%d\n",cost[v][i]);
  9.     }
  10.     printf("s[v] =%d\n",s[v]);
  11.     s[v]=1;
  12.     printf("s[v] =%d\n",s[v]);
  13.    
  14.     //el nodo origen tiene un peso de 0 por que ahi comenzamos
  15.     dist[v]=0;
  16.    
  17.     for(num=1;num<tam-1;num++){
  18.         min=9999;
  19.         for (w=0;w<tam;w++){
  20.             if (s[w]==0 && dist[w]<min){
  21.                 //Elige la mejor opcion
  22.                 printf("La distancia %d es menor que %d \n",dist[w],min);
  23.                 //reasigna el valor minimo
  24.             min=dist[w];
  25.             u=w;
  26.                 printf("u=%d \n",u);
  27.             }
  28.         }
  29.         //nodos visitados valen 1
  30.         s[u]=1;
  31.         for (w=0;w<tam;w++){
  32.  //mientras el nodo no haya sido visitado
  33.             if (s[w]==0){
  34.                 if (dist[w]<dist[u]+cost[u][w]){
  35.                     dist[w]=dist[w];
  36.                     printf("S[%d]==%d     %d<%d+%d \n",w+1,s[w],dist[w],dist[u],cost[u][w]);
  37.                 }
  38.                 else{
  39.                     dist[w]=dist[u]+cost[u][w];
  40.                     printf("S[%d]==%d     %d>%d+%d \n",w+1,s[w],dist[w],dist[u],cost[u][w]);
  41.                 }
  42.  
  43.             }
  44.            
  45.            
  46.            
  47.         }
  48.        
  49.     }
Advertisement
Add Comment
Please, Sign In to add comment