Pagini recente » Cod sursa (job #2397885) | Cod sursa (job #3000342) | Cod sursa (job #1598793) | Cod sursa (job #2269427) | Cod sursa (job #3266374)
//Reprezentam graful cu matricea de adiacenta
//Coada o reprezentam prin vector alocat static
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n, adjacencyMatrix[101][101], visit[101];
int queue[101];
void read() {
fin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
fin >> adjacencyMatrix[i][j];
}
}
}
void bfs(int start) {
queue[0] = start; //marcam pozitia de start a vectorului coada
visit[start] = 1; //vizitam pozitia de start a vectorului coada
int next = 1;
for (int position = 0; position < next; position++) {
fout << queue[position] << " ";
int vertex = queue[position];
for (int i = 1; i <= n; i++) {
if (adjacencyMatrix[vertex][i] == 1 && !visit[i]) {
queue[next++] = i;
visit[i] = 1;
}
}
}
}
int main() {
read();
bfs(1);
return 0;
}