Pagini recente » Cod sursa (job #390505) | Cod sursa (job #2508386) | Cod sursa (job #2329661) | Cod sursa (job #1309805) | Cod sursa (job #1388815)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
vector <int> G[100];
void bf(int v, int s, int viz[]) {
int i, j, grad[100];
for (i = 1; i <= v; i++) {
grad[i] = G[i].size();
}
queue <int> Coada;
viz[s] = 1;
cout << s << " ";
for (i = 0; i < grad[s]; i++)
if (viz[G[s][i]] == 0) {
Coada.push(G[s][i]);
viz[G[s][i]] = 1;
}
while (!Coada.empty()) {
j = Coada.front();
Coada.pop();
cout << j << " ";
for (i = 0; i < grad[j]; i++)
if (viz[G[j][i]] == 0) {
Coada.push(G[j][i]);
viz[G[j][i]] = 1;
}
}
for (i = 1; i <= v; i++)
if (viz[i] == 0) bf(v, i, viz);
}
int main()
{
int i, v, e, x, y, s, viz[100];
ifstream f("BF.in");
f >> v >> e >> s;
for (i = 1; i <= e; i++) {
f >> x >> y;
G[x].push_back(y);
viz[i] = 0;
}
bf(v, s, viz);
f.close();
cin.get();
return 0;
}