DijkstraTest.c
上传用户:hbxtsdjs
上传日期:2022-04-11
资源大小:1594k
文件大小:1k
源码类别:

电子书籍

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. typedef char DataType;
  5. #define MaxSize 100
  6. #define MaxVertices 10
  7. #define MaxWeight 10000
  8. #include "AdjMGraph.h"
  9. #include "AdjMGraphCreate.h"
  10. #include "Dijkstra.h"
  11. void main(void)
  12. {
  13. AdjMWGraph g;
  14. char a[] = {'A','B','C','D','E','F'};
  15. RowColWeight rcw[] = {{0,2,5},{0,3,30},{1,0,2},{1,4,8},{2,1,15},{2,5,7},
  16. {4,3,4},{5,3,10},{5,4,18}};
  17. int i, n = 6, e = 9;
  18. int distance[6], path[6];
  19. CreatGraph(&g, a, n, rcw, e);
  20. Dijkstra(g, 0, distance, path);
  21. printf("从顶点%c到其他各顶点的最短距离为:n", g.Vertices.list[0]);
  22. for(i = 0; i < n; i++)
  23. printf("到顶点%c的最短距离为%dn", g.Vertices.list[i], distance[i]);
  24. printf("从顶点%c到其他各顶点最短路径的前一顶点为:n", g.Vertices.list[0]);
  25. for(i = 0; i < n; i++)
  26. if(path[i] != -1)
  27. printf("到顶点 %c的前一顶点为%cn", 
  28. g.Vertices.list[i], g.Vertices.list[path[i]]);
  29. }