ragazzi qualcuno mi sa dire cosa sbaglio in questo codice? mi dice che c'è la presenza di cicli ma nel grafo che ho messo non ce ne sono
codice:void inizializza_bellman(int n,int d[],int p[]){ int i; for(i=0; i<n; i++){ d[i] = MAX_I; p[i] = -1; } } int bellman_ford(Graph g,int d[],int pred[],int s){ int i; inizializza_bellman(g->nodes_count,d,pred); d[s]=0; // impostare la sorgente a 0 List top; for(i=0;i<g->nodes_count;i++){ top=g->adj[i]; while(top!=NULL){ if(d[top->target]>d[i]+top->peso){ d[top->target]=d[i]+top->peso; pred[top->target]=i; } top=top->next; } } for(i=0;i<g->nodes_count;i++){ top=g->adj[i]; while(top!=NULL){ if(d[top->target]>d[i]+top->peso) return 0; top=top->next; } } return 1; }

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando