当前位置:   article > 正文

图的深度优先遍历递归算法(输出到文件)

图的深度优先遍历递归算法(输出到文件)

图的深度优先遍历递归算法(输出到文件)----C语言实现

 

  1. #include <stdio.h>
  2. #define MaxVex 100 //最大顶点数
  3. #define MaxNum 65535 //表示∞
  4. #define TRUE 1
  5. #define FALSE 0
  6. typedef char VertexType; //顶点类型
  7. typedef int EdgeType; //权值类型
  8. typedef int Bool;
  9. Bool visited[MaxVex];
  10. typedef struct {
  11. VertexType vexs[MaxVex]; //顶点数组
  12. EdgeType arc[MaxVex][MaxVex]; //邻接矩阵
  13. int numVertexes, numEdges; //当前图中的结点数以及边数
  14. }MGraph;
  15. //建立图的邻接矩阵
  16. void CreateMGraph(MGraph *G)
  17. {
  18. int i, j, k, w;
  19. printf("输入顶点数和边数: ");
  20. scanf("%d%d", &G->numVertexes,&G->numEdges);
  21. fflush(stdin);//清空缓冲区,并且可以换行
  22. printf("==============================\n");
  23. printf("输入各个顶点:\n");
  24. for (i=0; i<G->numVertexes; ++i)
  25. {
  26. printf("顶点%d: ",i+1);
  27. scanf("%c", &G->vexs[i]);
  28. fflush(stdin);
  29. }
  30. for (i=0; i<G->numVertexes; ++i)
  31. {
  32. for (j=0; j<G->numVertexes; ++j)
  33. G->arc[i][j] = MaxNum;
  34. }
  35. printf("==============================\n");
  36. for (k=0; k<G->numEdges; ++k)
  37. {
  38. printf("输入边(vi, vj)中的下标i和j和权W: ");
  39. scanf("%d%d%d", &i,&j,&w);
  40. G->arc[i][j] = w;
  41. G->arc[j][i] = G->arc[i][j];
  42. }
  43. }
  44. //图的深度优先遍历
  45. void DFS(MGraph G, int i)
  46. {
  47. FILE *pf;
  48. pf=fopen("333.txt","a+");
  49. int j;
  50. visited[i] = TRUE;
  51. fprintf(pf,"%c ",G.vexs[i]);
  52. printf("%c ", G.vexs[i]);
  53. for (j=0; j<G.numVertexes; ++j)
  54. {
  55. if (G.arc[i][j]!=MaxNum && !visited[j])
  56. DFS(G, j);
  57. }
  58. }
  59. void DFSTraverse(MGraph G)
  60. {
  61. int i;
  62. for (i=0; i<G.numVertexes; ++i)
  63. visited[i] = FALSE;
  64. for (i=0; i<G.numVertexes; ++i)
  65. {
  66. if (!visited[i])
  67. DFS(G, i);
  68. }
  69. }
  70. //程序入口
  71. int main(){
  72. FILE *pf;
  73. pf=fopen("333.txt","w");
  74. MGraph G;
  75. CreateMGraph(&G);
  76. printf("\n图的深度优先遍历为: ");
  77. DFSTraverse(G);
  78. return 0;
  79. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/509719
推荐阅读
相关标签
  

闽ICP备14008679号