如何使用c打印Bellman Ford的路径和最终距离矩阵?

时间:2018-04-05 20:51:23

标签: algorithm graph-algorithm bellman-ford

我试图实施 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 个答案:

答案 0 :(得分:1)

我不确定你希望得到什么样的答案。你的问题很不清楚。

但是你应该做什么:
1)检查矩阵是否正确表示图形。确保你得到了诀窍。
2)https://www.youtube.com/watch?v=Ttezuzs39nk观看麻省理工学院的这个讲座。
3)尝试其他算法。我建议Dijkstra,我的观点更简单。