Paste Search Dynamic
BFS DFS
  1. #include <vector>
  2. #include <queue>
  3. #include <algorithm>
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. int N, M;
  8. vector<int> v[1001];
  9. bool visited_bfs[1001];
  10. bool visited_dfs[1001];
  11.  
  12. void BFS(int I) {
  13.  
  14.     queue<int> q;
  15.     q.push(I);
  16.     visited_bfs[I] = true;
  17.  
  18.     while(!q.empty()) {
  19.         int current = q.front();
  20.         q.pop();
  21.  
  22.         for(int i = 0; i < v[current].size(); i++) {
  23.             int next = v[current][i];
  24.  
  25.             if(!visited_bfs[next]) {
  26.                 visited_bfs[next] = true;
  27.                 q.push(next);
  28.             }
  29.         }
  30.  
  31.         if (q.empty()) {
  32.             printf("%dn", current);
  33.         } else {
  34.             printf("%d ", current);
  35.         }
  36.     }
  37. }
  38.  
  39. void DFS(int I){
  40.  
  41.     visited_dfs[I] = true;
  42.     printf("%d", I);
  43.  
  44.     for(int i = 0; i < v[I].size(); i++){
  45.         int next = v[I][i];
  46.  
  47.         if(!visited_dfs[next]) {
  48.             printf(" ");
  49.             DFS(next);
  50.         }
  51.     }
  52. }
  53.  
  54. int main() {
  55.  
  56.     int S;
  57.     scanf("%d %d %d", &N, &M, &S);
  58.  
  59.     for(int i = 0; i < M; i++) {
  60.         int a, b;
  61.         scanf("%d %d", &a, &b);
  62.  
  63.         v[a].push_back(b);
  64.         v[b].push_back(a);
  65.         sort(v[a].begin(), v[a].end());
  66.         sort(v[b].begin(), v[b].end());
  67.     }
  68.  
  69.     BFS(S);
  70.     DFS(S);
  71.  
  72.     printf("n");
  73.  
  74.     return 0;
  75. }
Parsed in 0.014 seconds