File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+ let arrayList1 = null ,
3
+ arrayList2 = null ;
4
+ let visitedList1 = [ ] , visitedList2 = [ ] ;
5
+ function addEdge ( u , v ) {
6
+ arrayList1 [ u ] . push ( v ) ;
7
+ arrayList2 [ v ] . push ( u ) ;
8
+ }
9
+ function dfs1 ( vertex ) {
10
+ visitedList1 [ vertex ] = true ;
11
+ for ( const item of arrayList1 [ vertex ] ) {
12
+ if ( ! visitedList1 [ item ] ) dfs1 ( item ) ;
13
+ }
14
+ }
15
+
16
+ function dfs2 ( vertex ) {
17
+ visitedList2 [ vertex ] = true ;
18
+ for ( const item of arrayList2 [ vertex ] ) {
19
+ if ( ! visitedList2 [ item ] ) dfs2 ( item ) ;
20
+ }
21
+ }
22
+
23
+ function checkGraphConnectedOrNot ( n ) {
24
+ arrayList1 = new Array ( n + 1 ) ;
25
+ arrayList2 = new Array ( n + 1 ) ;
26
+ for ( let index = 1 ; index <= n ; index ++ ) {
27
+ arrayList1 [ index ] = [ ] ;
28
+ arrayList2 [ index ] = [ ] ;
29
+ visitedList1 [ index ] = false ;
30
+ visitedList2 [ index ] = false ;
31
+ }
32
+ addEdge ( 1 , 2 ) ;
33
+ addEdge ( 1 , 3 ) ;
34
+ addEdge ( 2 , 3 ) ;
35
+ addEdge ( 3 , 4 ) ;
36
+ dfs1 ( 1 ) ;
37
+ dfs2 ( 1 ) ;
38
+ for ( let index = 1 ; index <= n ; index ++ ) {
39
+ if ( visitedList1 [ index ] == false && visitedList2 [ index ] == false ) return false ;
40
+ }
41
+ return true ;
42
+ }
43
+ let n = 4 ;
44
+ console . log ( 'Graph is connected ? ' , checkGraphConnectedOrNot ( n ) ) ;
You can’t perform that action at this time.
0 commit comments