玄笙依旧怜 • 4天前
#include <bits/stdc++.h>
using namespace std;
int G[110][110];
bool vis[110];
int n, m;
queue <int>q;
void dfs(int v) {
vis[v] = true;
cout << v << ' ';
for (int i = 1; i <= n; i++) {
if (G[v][i] == 1 && !vis[i]) {
dfs(i);
}
}
}
void bfs(int v) {
vis[v] = true;
q.push(v);
while (!q.empty()) {
int y = q.front();
q.pop();
cout << y << ' ';
for (int j = 1; j <= n; j++) {
if (G[y][j] == 1 && !vis[j]) {
q.push(j);
vis[j] = true;
}
}
}
}
int main() {//0shi48
//freopen("wenjian.in", "r", stdin);
//freopen("wenjian.out", "w", stdout);
memset(G, 0, sizeof(G));
memset(vis, false, sizeof(vis));
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int x, y;
cin >> x >> y;
G[x][y] = 1;
}
//dfs
dfs(1);
cout << endl;
//bfs
memset(vis, false, sizeof(vis));
bfs(1);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int G[110][110];
bool vis[110];
int n, m;
queue <int>q;
void dfs(int v) {
vis[v] = true;
cout << v << ' ';
for (int i = 1; i <= n; i++) {
if (G[v][i] == 1 && !vis[i]) {
dfs(i);
}
}
}
void bfs(int v) {
vis[v] = true;
q.push(v);
while (!q.empty()) {
int y = q.front();
q.pop();
cout << y << ' ';
for (int j = 1; j <= n; j++) {
if (G[y][j] == 1 && !vis[j]) {
q.push(j);
vis[j] = true;
}
}
}
}
int main() {//0shi48
//freopen("wenjian.in", "r", stdin);
//freopen("wenjian.out", "w", stdout);
memset(G, 0, sizeof(G));
memset(vis, false, sizeof(vis));
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int x, y;
cin >> x >> y;
G[x][y] = 1;
}
//dfs
dfs(1);
cout << endl;
//bfs
memset(vis, false, sizeof(vis));
bfs(1);
return 0;
}
评论:
请先登录,才能进行评论