当前位置:   article > 正文

求每一对顶点之间的最短路径-Floyd算法及代码实现(C语言)_设计每对结点间的最短路径算法主函数 c语言

设计每对结点间的最短路径算法主函数 c语言
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. int map[3][3]={
  5. 0,4,11,
  6. 6,0,2,
  7. 3,100000,0/*这里用100000代替无穷大*/
  8. };
  9. int path[3][3]={/*path里的数据定义为路径的前置跳转点*/
  10. -1,0,0,
  11. 1,-1,1,
  12. 2,2,-1
  13. };
  14. int main(){
  15. int n=3;
  16. for(int i=0;i<n;i++){/*i为中转点*/
  17. for(int j=0;j<n;j++){/*j为起点*/
  18. for(int k=0;k<n;k++){/*k为终点*/
  19. if(map[j][i]+map[i][k]<map[j][k]){
  20. map[j][k]=map[j][i]+map[i][k];
  21. path[j][k]=i;
  22. }
  23. }
  24. }
  25. }
  26. printf("每对顶点的最短路径为:\n");
  27. for(int i=0;i<n;i++){
  28. for(int j=0;j<n;j++){
  29. if(path[i][j]!=-1){
  30. printf("V%d",j);
  31. int temp=path[i][j];
  32. while(temp!=-1){
  33. printf(" <- V%d",temp);
  34. temp=path[i][temp];
  35. }
  36. printf("\t路径长度为%d\n",map[i][j]);
  37. }
  38. }
  39. }
  40. return 0;
  41. }

 

 

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号