1.Dijkstra算法,典型的单源最短路径算法。
Dijkstra提出按各顶点与源点v间的路径长度的递增次序,生成到各顶点的最短路径的算法。既先求出长度最短的一条最短路径,再参照它求出长度次短的一条最短路径,依次类推,直到从源点v 到其它各顶点的最短路径全部求出为止。
单源最短路径,给定一个带权有向图G=(V,E),其中每条边的权是一个实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到其他所有各顶点的最短路径长度。这里的长度就是指路上各边权之和。
Dijkstra::Dijkstra()
{
const int init_map[5][5] = {
{0,6,INT_MAX,1,INT_MAX},
{6,0,5,2,2},
{INT_MAX,5,0,INT_MAX,5},
{1,2,INT_MAX,0,1},
{INT_MAX,2,5,1,0}};
string visit ="";
string node = "abcde";
string unvisit = node;
map<char,int> my_map; //存储最短路径信息
for(auto r:unvisit){
if (r == unvisit[0]