dijkstra算法,单源最短路径
单源最短路径算法C++简单实现 参考文章: https://www.jianshu.com/p/ff6db00ad866 #include<iostream> using namespace std; #define MAX 10000 int map[5][5]={ {0,4,MAX,2,MAX}, {4,0,4,1,MAX}, {MAX,4,0,1,3}, {2,1,1,0,7}, {MAX,MAX,3,7,0} }; int main() { char start; int S[5]={0},U[5]; cout<<"enter start node :"<<endl; cin>>start; for(int i=0;i<5;i++) { U[i]=map[start-'A'][i]; } for(int i=0;i<5;i++) { int dim=MAX,k; for(int j=0;j<5;j++) { if((S[j]==0)&&((U[j])<dim)) { dim=U[j]; k=j; } } S[k]=1; for(int j=0;j<5;j++) { if(map[k][j]+dim<U[j]) U[j]=map[k][j]+dim; } } for(int i=0;i<5;i++) cout<<start<<"到"<<(char)('A'+i)<<"距离"<