构建有向带权图用邻接矩阵求最短路径

#include 
#include 
using namespace std;
int main()
{
    int tu[100][100]={0};
    int du[100]={0};
    int num;
    cout<<"输入定点数:"<cin>>num;
    int x,y,t;
    for(int i=1;i<=num;i++)
    {
        cout<<"输入在图中的位置:"<cin>>x>>y;
        cout<<"输入权值:"<cin>>t;
        tu[x-1][y-1]=t;   //构造有向图
    }
    //求最短路径
    int start,ends;
    cout<<"输入顶点和终点:"<cin>>start>>ends;
    int v,w,finals[100],d[100],p[100][100],INFINITY;
    for(v=0;v0;
        d[v]=tu[start][v];
        for(w=0;w0;
        if(d[v]1;
            p[v][v]=1;
        }
    }
    int mins;
    for(int i=1;ifor(w=0;wif(!finals[w])
             if(d[w]1;
        for(w=0;wif(!finals[w]&&(mins+tu[v][w]1;
        }
    }
    cout<<"最短路径"<cout<return 0;
}

稍微有点小错误。思路还是对的 。

你可能感兴趣的:(数据结构)