[
题目分析] 利用FLOYD算法求出每对顶点间的最短路径矩阵w,然后对矩阵w,求出每列j的最大值,得到顶点j的偏心度。然后在所有偏心度中,取最小偏心度的顶点v就是有向图的中心点。
void
FLOYD_PXD(AdjMatrix g)
//对以带权邻接矩阵表示的有向图g,求其中心点。 {AdjMatrix w=g ; //将带权邻接矩阵复制到w。 for (k=1;k<=n;k++) //求每对顶点间的最短路径。 for
(i=1;i<=n;i++)
for
(j=1;j<=n;j++)
if ( w[i][j]>w[i][k]+w[k][j])
w[i][j]=w[i][k]+w[k][j];
v=1;
dist=MAXINT; //中心点初值顶点v为1,偏心度初值为机器最大数。 for
(j=1;j<=n;j++)
{s=0;
for (i=1;i<=n;i++) if (w[i][j]>s) s=w[i][j];
//求每列中的最大值为该顶点的偏心度。 if (s