Skip to content

Commit 26bdaec

Browse files
authored
-
1 parent 33cc24e commit 26bdaec

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

1260.cpp

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#include <iostream>
2+
#include <algorithm>
3+
#include <memory.h>
4+
#include <vector>
5+
#include <queue>
6+
using namespace std;
7+
8+
int map[1001][1001];
9+
bool visit[1001];
10+
int N,M,V;
11+
vector<int> BFS_ans;
12+
vector<int> DFS_ans;
13+
queue<int> q;
14+
void DFS(int v)
15+
{
16+
if(visit[v])
17+
return;
18+
DFS_ans.push_back(v);
19+
visit[v]=true;
20+
for(int i=1;i<=N;i++)
21+
{
22+
if(map[v][i]!=-1)
23+
DFS(i);
24+
}
25+
}
26+
void BFS(int v)
27+
{
28+
if(visit[v])
29+
return;
30+
BFS_ans.push_back(v);
31+
visit[v]=true;
32+
for(int i=1;i<=N;i++)
33+
{
34+
if(map[v][i]!=-1&&!visit[i])
35+
{
36+
q.push(i);
37+
}
38+
}
39+
while(!q.empty())
40+
{
41+
int tq = q.front();
42+
q.pop();
43+
BFS(tq);
44+
}
45+
}
46+
47+
int main(void)
48+
{
49+
memset(map,-1,sizeof(map));
50+
cin>>N>>M>>V;
51+
for(int i=0;i<M;i++)
52+
{
53+
int n,m;
54+
cin>>n>>m;
55+
map[n][m]=1;
56+
map[m][n]=1;
57+
}
58+
memset(visit,false,sizeof(visit));
59+
DFS(V);
60+
memset(visit,false,sizeof(visit));
61+
q.push(V);
62+
BFS(V);
63+
for(int i=0;i<DFS_ans.size();i++)
64+
cout<<DFS_ans[i]<<" ";
65+
cout<<endl;
66+
for(int i=0;i<BFS_ans.size();i++)
67+
cout<<BFS_ans[i]<<" ";
68+
}

0 commit comments

Comments
 (0)