/*
求每一對頂點之間的最短距離
鄰接矩陣
依次加入各個頂點
*/#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更容易理解,並且 更簡潔,因此當求算各對頂點之間的最短距離常採...