我试图实施 Bellman-Ford 但是没有运行我尝试了所有我知道的方法但是我无法在C中打印路径和距离矩阵。任何人都可以给我解决方案这个?
#include
#include
#include
typedef struct edge
{
int s,d,w;
struct edge *next;
}Edge;
typedef struct graph
{
int V,E;
Edge *e;
}graph;
graph* createGraph(int v,int e)
{
graph* g=(graph*)malloc(sizeof(graph));
g->V=v;
g->E=e;
g->e=(Edge*)malloc(sizeof(Edge)*e);
return g;
}
void bellMan(graph *g,int src)
{
int v=g->V;
int e=g->E;
int dist[v],path[v];
int i,j;
for(i=0;ie[j].s;
int y=g->e[j].d;
int w=g->e[j].w;
if(dist[x]!=INT_MAX && dist[x]+we[i].s;
int y=g->e[i].d;
int w=g->e[i].w;
if(dist[x]!=INT_MAX && dist[x]+we[i].s,&g->e[i].d,&g->e[i].w);
printf("Enter starting vertex:");
scanf("%d",&s);
bellMan(g,s);
return 0;
}
请帮我看看如何打印路径和距离矩阵(指定一个节点到另一个节点的距离)。
答案 0 :(得分:1)
我不确定你希望得到什么样的答案。你的问题很不清楚。
但是你应该做什么:
1)检查矩阵是否正确表示图形。确保你得到了诀窍。
2)https://www.youtube.com/watch?v=Ttezuzs39nk观看麻省理工学院的这个讲座。
3)尝试其他算法。我建议Dijkstra,我的观点更简单。