ChameL1oN

Дискретка

Mar 16th, 2015
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <locale.h>
  4. using namespace std;
  5.  
  6. ifstream f("ishod.txt", ios::in);
  7.  
  8.  
  9. //Определение числа компонент связности в графе по матрице смежности.
  10.  
  11. // Метод : что-то похожее на обход в глубину
  12.  
  13.  
  14.  
  15. int main()
  16. {
  17. setlocale(LC_ALL, "rus");
  18. int n;
  19. bool**b;
  20. f >> n;
  21. const int n2 = n;
  22. b = new bool*[n2];
  23. for (int i = 0; i<n2; i++)
  24. {
  25. b[i] = new bool[n2];
  26. }
  27. for (int i = 0; i < n2; i++){
  28. for (int j = 0; j < n2; j++)
  29. {
  30. int c;
  31. f >> c;
  32. if (c == 1 || c == 0)
  33. {
  34. if (c == 1)
  35. b[i][j] = true;
  36. else b[i][j] = false;
  37. }
  38. else { cout << "\nОШИБКА!\n"; j = j - 1; continue; }
  39. b[i][i] = false;
  40. }
  41. }
  42. bool**p;
  43. p = new bool*[n2];
  44. for (int i = 0; i<n2; i++)
  45. {
  46. p[i] = new bool[n2];
  47. }
  48. int re = 0;
  49. for (int i = 0; i < n2; i++){
  50. for (int j = 0; j < n2; j++)
  51. {
  52. if (b[i][j] == 1) re++;
  53. p[i][j] = b[i][j];
  54. }
  55. }
  56. for (int i = 0; i < n2; i++){
  57. for (int j = 0; j < n2; j++){
  58. if (p[i][j] == true){
  59. for (int z = 0; z < n2; z++){
  60. if (p[j][z] == true && i != z){
  61. p[i][z] = true;
  62. }
  63. }
  64. }
  65. }
  66. }
  67.  
  68. int *visit = new int[n2];
  69. int cmpsvyaz = 0;
  70. for (int i = 0; i<n2; i++) visit[i] = 0;
  71. for (int g = 0; g<n2; g++)
  72. {
  73. int k = 1;
  74. if (visit[g] == 0)
  75. {
  76. visit[g] = 1;
  77. for (int j = 0; j<n2; j++)
  78. if (p[g][j] == 1 && p[j][g] == 1){
  79. visit[j] = 1;
  80. k++;
  81. }cmpsvyaz++;
  82. }
  83. }
  84. cout << endl;
  85. cout << "Кол-во компонент связности = " << cmpsvyaz << endl;
  86. cout << endl;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment