如何使用c打印贝尔曼·福特的路径和最终距离矩阵



我试图在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观看此MIT讲座。
3(尝试其他算法。我建议Dijkstra,从我的角度来看,这更简单。

最新更新