如何使用 c 打印 Bellman Ford 的路径和最终距离矩阵?
How to Print path and final distance matrix of Bellman Ford using c?
我试图实现 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;
}
请帮助我如何打印路径和距离矩阵(其中指定了一个节点到另一个节点的距离)。
我不确定您希望收到什么样的答复。你的问题很不清楚。
但是这里你应该做的是:
1)检查您的矩阵是否正确表示图形。确保你明白诀窍。
2) https://www.youtube.com/watch?v=Ttezuzs39nk 观看麻省理工学院的讲座。
3)尝试其他算法。我建议Dijkstra,在我看来它更简单。
我试图实现 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;
}
请帮助我如何打印路径和距离矩阵(其中指定了一个节点到另一个节点的距离)。
我不确定您希望收到什么样的答复。你的问题很不清楚。
但是这里你应该做的是:
1)检查您的矩阵是否正确表示图形。确保你明白诀窍。
2) https://www.youtube.com/watch?v=Ttezuzs39nk 观看麻省理工学院的讲座。
3)尝试其他算法。我建议Dijkstra,在我看来它更简单。