经典指数          
原因
2424
浏览数
0
收藏数
 

求图的中心点的算法。设V是有向图G的一个顶点,我们把V的偏心度定义为:max{从w到v的最短距离|w是g中所有顶点},如果v是有向图G中具有最小偏心度的顶点,则称顶点v是G的中心点。

     举报   纠错  
 
切换
1 个答案
[ 题目分析] 利用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
 
切换
撰写答案
扫描后移动端查看本题