instruction: Írj BFS-t c++ nyelven.
output: Íme egy példa a BFS C++ nyelven történő megvalósítására, amely egy szomszédsági listát használ a gráf ábrázolására:
  
  ```
  #include <iostream>
  #include <queue>
  #include <vector>
  
  using namespace std;
  
  void bfs(vector<vector<int>>& graph, int start) {
      int n = graph.size();
      vektor<bool> visited(n, false);
      queue<int> q;
      q.push(start);
      visited[start] = true;
  
      while (!q.empty()) {
          int node = q.front();
          q.pop();
  
          // Csináljunk valamit a csomóponttal (pl. nyomtatás).
          cout << node << " ";
  
          for (int neighbor : graph[node]) {
              if (!visited[neighbor]) {
                  q.push(szomszéd);
                  visited[szomszéd] = true;
              }
          }
      }
  }
  
  int main() {
      int n, m; // n = a csomópontok száma, m = az élek száma.
      cin >> n >> m;
  
      // Felépítjük a gráfot
      vektor<vektor<int>> graph(n);
      for (int i = 0; i < m; i++) {
          int a, b;
          cin >> a >> b;
          // Élek hozzáadása a-tól b-ig
          graph[a].push_back(b);
          // Élek hozzáadása b-ből a-ba, ha nem irányított.
          // graph[b].push_back(a);
      }
  
      // BFS végrehajtása a 0 csomópontból kiindulva
      bfs(graph, 0);
      
      return 0;
  }
  ```
  
  Ez az implementáció felhasználói bemenetként `n` (csomópontok száma) és `m` (élek száma) értékeket vesz fel, létrehozza a gráf szomszédsági listáját, és a 0. csomópontból kiindulva BFS-t hajt végre. A BFS során a csomópontok a meglátogatási sorrendben kerülnek kiírásra.