fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4. int a[100][100], vs[100], n;
  5. queue<int> q;
  6. void BFS(int start) {
  7. cout << start << "(0) ";
  8. vs[start] = 1;
  9. q.push(start);
  10. while (!q.empty()) {
  11. int u = q.front();
  12. for (int i = 1; i <= n; i++) {
  13. if (a[u][i] == 1 && vs[i] == 0) {
  14. vs[i] = 1;
  15. cout << i << "(" << u << ") ";
  16. q.push(i);
  17. }
  18. }
  19. q.pop();
  20. }
  21. }
  22.  
  23. int main() {
  24. cout << "So dinh: ";
  25. cin >> n;
  26. // Khoi tao ma tran ke
  27. cout << "Nhap ma tran:\n";
  28. memset(vs, 0, 100);
  29. for (int i = 1; i <= n; i++) {
  30. for (int j = 1; j <= n; j++) {
  31. cin >> a[i][j];
  32. }
  33. }
  34. cout << "Thuc hien thuat toan BFS tu dinh: ";
  35. int start;
  36. cin >> start;
  37. BFS(start);
  38. }
  39.  
  40. /**
  41. Test:
  42. 13
  43. 0 1 1 1 0 0 0 0 0 0 0 0 0
  44. 1 0 1 1 0 1 0 0 0 0 0 0 0
  45. 1 1 0 1 1 0 0 0 0 0 0 0 0
  46. 1 1 1 0 0 0 1 0 0 0 0 0 0
  47. 0 0 1 0 0 1 1 1 0 0 0 1 0
  48. 0 1 0 0 1 0 1 0 0 0 0 1 0
  49. 0 0 0 1 1 1 0 1 0 0 0 0 0
  50. 0 0 0 0 1 0 1 0 0 0 0 1 0
  51. 0 0 0 0 0 0 0 1 1 0 1 0 1
  52. 0 0 0 0 0 0 0 0 1 0 1 1 1
  53. 0 0 0 0 0 0 0 1 1 0 0 1 1
  54. 0 0 0 0 1 1 0 1 0 1 0 0 0
  55. 0 0 0 0 0 0 0 1 1 1 0 0 0
  56.  
  57. **/
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
So dinh: Nhap ma tran:
Thuc hien thuat toan BFS tu dinh: 5267(0)