求每一對頂點之間的最短距離

2021-08-19 16:16:52 字數 1087 閱讀 1324

/*

求每一對頂點之間的最短距離

鄰接矩陣

依次加入各個頂點

*/#include

#include

using

namespace

std;

#define maxsize 32

string getstr(string s, string s2)}}

}return str;

}class graph

bool init();

void findminpath();

public:

int m_node[maxsize][maxsize];

int m_vertsize;

int m_edgesize;

char m_nodeinfo[maxsize];

};bool graph::init()

cin >> m_edgesize;

for (int i = 0; i < m_edgesize; i++)

return

true;

}void graph::findminpath()}}

//依次增加各點

for (int i = 1; i <= m_vertsize; i++)}}

}}

//hex dec oct

//setprecision(10);//顯示小數字數 作用永久

//setfill(' '); //填充字元

//setw(8); //域寬

//setiosflags(ios::left);//左對齊

for (int i = 1; i <= m_vertsize; i++)

cout

<< endl;

}cout

<< endl;

for (int i = 1; i <= m_vertsize; i++)

cout

<< endl;

}cout

<< endl;

}int main()

return

0;}

Floyd演算法(求每一對頂點之間的最短距離)

include include define ok 1 define error 1 define max vertex num 12 define network infinity 32767 typedef struct arccell adjmatrix max vertex num max ...

Floyd(各對頂點之間的最短距離)

我們其實可以求n次dijkstra,就可以求出各對頂點的最短路了。但是這不是重點,有乙個比他更清晰易懂的演算法 floyd 假設從i到j的最短路徑上要經過若干個頂點,這些中間頂點中最大的頂點編號為k,最小的頂點為t,因此要求算dist i j 的最小值,那麼只需要求算dist i s dist s ...

Floyd演算法(各對頂點之間的最短距離)

floyd演算法 各對頂點之間的最短距離 在上篇文章中談論到了如何求算單源最短路徑,因此要想求各對頂點之間的距離,只需迴圈求算n次即可。還有另外一種方法來求算各對頂點之間的最短距離,就是floyd演算法,由於其演算法過程比dijkstra更容易理解,並且 更簡潔,因此當求算各對頂點之間的最短距離常採...