PDA

Visualizza la versione completa : [C] Algoritmo Bellman-Ford e presenza cicli in grafo che non li contiene


antonx
09-09-2014, 12:53
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


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;
}

Loading