Advertisement
AbraaoAllysson

grafos

May 3rd, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. #define tam (6)
  5.  
  6. /*
  7. GRAFO DESCONEXO:
  8. 0 0 1 1 0 0
  9. 0 0 0 0 1 0
  10. 1 0 0 0 0 1
  11. 1 0 0 0 0 1
  12. 0 1 0 0 0 0
  13. 0 0 1 1 0 0
  14.  
  15. GRAFO CONEXO:
  16. 0 1 0 1 0 0
  17. 1 0 1 0 1 0
  18. 0 1 0 0 0 1
  19. 1 0 0 0 0 1
  20. 0 1 0 0 0 0
  21. 0 0 1 1 0 0
  22. */
  23.  
  24. void inicializarGrafo(int grafo[][tam]);
  25. void imprimirGrafo(int grafo[][tam]);
  26. void buscaProf(int grafo[][tam], int vIni);
  27. void desmarcarVertices(int grafo[][tam]);
  28. int conexo(int grafo[][tam]);
  29.  
  30. //Main
  31. int main()
  32. {
  33. int grafo[tam][tam];
  34.  
  35. inicializarGrafo(grafo);
  36.  
  37. if (conexo(grafo))
  38. {
  39. printf("\nGrafo conexo!\n");
  40. }
  41. else
  42. printf("\nGrafo nao conexo!\n");
  43.  
  44. system("pause");
  45. return 0;
  46. }
  47.  
  48. void inicializarGrafo(int grafo[][tam])
  49. {
  50. printf("Informe a matriz de adjacencia do grafo:\n");
  51.  
  52. int i, j;
  53. for (i = 0; i < tam; i++)
  54. {
  55. for (j = 0; j < tam; j++)
  56. {
  57. scanf("%d", &grafo[i][j]);
  58. }
  59. }
  60. }
  61.  
  62. void imprimirGrafo(int grafo[][tam])
  63. {
  64. int i, j;
  65. printf("\n");
  66. for (i = 0; i < tam; i++)
  67. {
  68. for (j = 0; j < tam; j++)
  69. {
  70. printf("%d ", grafo[i][j]);
  71. }
  72. printf("\n");
  73. }
  74. }
  75.  
  76.  
  77. void buscaProf(int grafo[][tam], int vIni)
  78. {
  79. int i;
  80. for (i = 0; i < tam; i++)
  81. {
  82. if(grafo[vIni][i] == 1)
  83. if (grafo[vIni][i] != 2)
  84. {
  85. grafo[vIni][i] += 1;
  86. buscaProf(grafo, i);
  87. }
  88. }
  89. }
  90.  
  91. int conexo(int grafo[][tam])
  92. {
  93. int i, k;
  94. buscaProf(grafo, 0);
  95. for (i = 0; i < tam; i++)
  96. {
  97. for (k = 0; k < tam; k++)
  98. {
  99. if (grafo[i][k] == 1)
  100. return 0;
  101. }
  102. }
  103.  
  104. return 1;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement