Dijstra算法实现——C++(邻接矩阵)

#include
#include
#include
#include
#define MAX 100
#define INF 0x3f3f3f3f
using namespace std;
int dist[MAX],path[MAX];
struct MGraph
{
    int edges[MAX][MAX];//邻接矩阵
    int n,e;//顶点数和边数
}G;
void init() {
    memset(G.edges,INF,sizeof(G.edges));//初始化每条边权值为无穷大
}
void insert(int u,int v,int w){
     G.edges[u][v]=w;
}
void printfPath(int path[],int a)
{
    stack  stk;
    while(path[a]!=-1)
    {
        stk.push(a);
        a=path[a];
    }
    stk.push(a);
    cout<<"最短路径:"<>m>>n;
    G.e=m;
    G.n=n;
    for(int i=0;i>x>>y>>w;
        insert(x,y,w);
    }
    Dijstra(G,0,dist,path);
    printfPath(path,5);
    for(int i=1;i

调试结果:

Dijstra算法实现——C++(邻接矩阵)_第1张图片

你可能感兴趣的:(Dijstra算法实现——C++(邻接矩阵))