Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void path(int **,int *,int,int);
- path(cost,dist,tam,v-1);
- void path(int **cost,int *dist,int tam,int v){
- int u,w,i,num,s[tam],min;
- for(i=0;i<tam;i++){
- s[i]=0;
- dist[i]=cost[v][i];
- printf("costo de operacion del nodo origen =%d\n",cost[v][i]);
- }
- printf("s[v] =%d\n",s[v]);
- s[v]=1;
- printf("s[v] =%d\n",s[v]);
- //el nodo origen tiene un peso de 0 por que ahi comenzamos
- dist[v]=0;
- for(num=1;num<tam-1;num++){
- min=9999;
- for (w=0;w<tam;w++){
- if (s[w]==0 && dist[w]<min){
- //Elige la mejor opcion
- printf("La distancia %d es menor que %d \n",dist[w],min);
- //reasigna el valor minimo
- min=dist[w];
- u=w;
- printf("u=%d \n",u);
- }
- }
- //nodos visitados valen 1
- s[u]=1;
- for (w=0;w<tam;w++){
- //mientras el nodo no haya sido visitado
- if (s[w]==0){
- if (dist[w]<dist[u]+cost[u][w]){
- dist[w]=dist[w];
- printf("S[%d]==%d %d<%d+%d \n",w+1,s[w],dist[w],dist[u],cost[u][w]);
- }
- else{
- dist[w]=dist[u]+cost[u][w];
- printf("S[%d]==%d %d>%d+%d \n",w+1,s[w],dist[w],dist[u],cost[u][w]);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment