File tree 4 files changed +71
-13
lines changed
4 files changed +71
-13
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ public static void Main(string[] args) {
7
7
// BFS bfs = new BFS();
8
8
// bfs.manageBFS(lines);
9
9
10
-
10
+ DFS dfs = new DFS ( ) ;
11
+ dfs . manageDFS ( lines ) ;
11
12
}
12
13
}
Original file line number Diff line number Diff line change
1
+ using System ;
2
+ using System . Collections . Generic ;
3
+
4
+ public class DFS {
5
+
6
+ public int nodes , edges ;
7
+ public bool [ ] vis ;
8
+ public List < int > [ ] graph ;
9
+
10
+ public DFS ( ) {
11
+
12
+ }
13
+
14
+ public void initDFS ( int nodes , int edges ) {
15
+ this . nodes = nodes ;
16
+ this . edges = edges ;
17
+
18
+ graph = new List < int > [ nodes ] ;
19
+ for ( int i = 0 ; i < nodes ; i ++ ) {
20
+ vis = new bool [ nodes ] ;
21
+ graph [ i ] = new List < int > ( ) ;
22
+ }
23
+ }
24
+
25
+ public void dfs ( int u ) {
26
+ Console . Write ( "{0} " , u ) ;
27
+ vis [ u ] = true ;
28
+
29
+ for ( int i = 0 ; i < graph [ u ] . Count ; i ++ ) {
30
+ int v = graph [ u ] [ i ] ;
31
+ if ( vis [ v ] == false ) {
32
+ dfs ( v ) ;
33
+ }
34
+ }
35
+ }
36
+
37
+ public void manageDFS ( string [ ] lines ) {
38
+
39
+ string [ ] line1 = lines [ 0 ] . Split ( ' ' ) ;
40
+ int nodes = int . Parse ( line1 [ 0 ] ) ;
41
+ int edges = int . Parse ( line1 [ 1 ] ) ;
42
+
43
+ initDFS ( nodes , edges ) ;
44
+
45
+ for ( int i = 1 ; i <= edges ; i ++ ) {
46
+ string [ ] all_edge = lines [ i ] . Split ( ' ' ) ;
47
+ int u = int . Parse ( all_edge [ 0 ] ) ;
48
+ int v = int . Parse ( all_edge [ 1 ] ) ;
49
+ graph [ u ] . Add ( v ) ;
50
+ graph [ v ] . Add ( u ) ;
51
+ }
52
+
53
+ for ( int i = 0 ; i < nodes ; i ++ ) {
54
+ if ( vis [ i ] == false ) {
55
+ dfs ( i ) ;
56
+ }
57
+ }
58
+
59
+ Console . WriteLine ( ) ;
60
+ }
61
+ }
Original file line number Diff line number Diff line change 1
- 8 10
1
+ 6 5
2
2
0 1
3
- 0 2
4
- 0 3
5
- 0 4
6
- 1 5
7
- 2 5
8
- 3 6
9
- 4 6
10
- 5 7
11
- 6 7
3
+ 1 2
4
+ 2 4
5
+ 3 4
6
+ 1 5
Original file line number Diff line number Diff line change @@ -45,7 +45,7 @@ int main() {
45
45
return 0 ;
46
46
}
47
47
48
- /* *****************
48
+ /*
49
49
INPUT
50
50
---
51
51
- 1st line, 6 Vertex, 5 Edge
@@ -54,8 +54,9 @@ int main() {
54
54
1 2
55
55
2 4
56
56
3 4
57
+ 1 5
57
58
58
59
OUTPUT:
59
60
-----
60
61
0 1 5 2 4 3
61
- **************** * /
62
+ */
You can’t perform that action at this time.
0 commit comments